mesa/src
Paulo Zanoni 28f677e6dc iris: implement inter-context busy-tracking
Previously, no buffers were ever marked as EXEC_OBJECT_ASYNC so the
Kernel would ensure dependency tracking for us. After we implemented
explicit busy tracking in commit 89a34cb845, only the external
objects kept relying on the Kernel's implicit tracking and Iris did
inter-batch busy tracking, meaning we lost inter-screen and
inter-context synchronization. This seemed fine to me since, as far as
I understdood, it is the duty of the application to synchronize itself
against multiple screens and contexts.

The problem here is that applications were actually relying on the old
behavior where the Kernel guarantees synchronization, so 89a34cb845
can be seen as a regression. This commit addresses the inter-context
synchronization case.

v2: Rebase after the changes from a90a1f15a7. This new version is
significantly different.

Cc: mesa-stable (see the backport in MR !14783)
References: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14783
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5731
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5812
Fixes: 89a34cb845 ("iris: switch to explicit busy tracking")
References: a90a1f15a7 ("iris: Create an IRIS_BATCH_BLITTER for using the BLT command streamer")
Tested-by: Konstantin Kharlamov <hi-angel@yandex.ru> (v1)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14505>
2022-02-01 00:34:55 +00:00
..
amd aco: preserve pass_flags during format conversions 2022-01-31 13:45:01 +00:00
android_stub
asahi agx: Lower UBO loads to use per-element indexing 2022-01-24 14:25:18 +00:00
broadcom v3dv: move sems_info from event_wait job to wait_thread info 2022-01-31 23:01:54 +00:00
compiler glsl/st: move st_nir_opts() into gl compiler common code 2022-01-31 11:49:21 +00:00
drm-shim
egl egl/dri2: short-circuit dri2_make_current when possible 2022-01-17 10:32:01 +00:00
etnaviv etnaviv: add support for INTEL_blackhole_render 2022-01-31 16:52:29 +00:00
freedreno turnip: respect buf->bo_offset in transform feedback 2022-01-31 18:31:54 +00:00
gallium iris: implement inter-context busy-tracking 2022-02-01 00:34:55 +00:00
gbm replace 0 with NULL for NULL pointers 2022-01-10 22:53:32 +00:00
getopt
glx replace 0 with NULL for NULL pointers 2022-01-10 22:53:32 +00:00
gtest gtest: Fix output of array ASSERT/EXPECT macros 2021-11-11 09:53:09 -08:00
hgl
imgui
intel anv/image: Call into WSI to create swapchain images 2022-01-31 19:46:55 +00:00
loader loader: Restore i915g support. 2021-12-09 09:05:23 -08:00
mapi mapi: generate correct dispatch for EXT_draw_instanced 2022-01-03 21:37:34 +00:00
mesa glsl/st: move st_nir_opts() into gl compiler common code 2022-01-31 11:49:21 +00:00
microsoft microsoft/compiler: Support multiple GS output streams 2022-01-31 13:34:27 -08:00
nouveau
panfrost panfrost: mark two variables as unused 2022-01-31 16:10:31 +00:00
tool ci: Use a dlclose-disabling preload library for leak checking in Vulkan. 2022-01-27 23:47:46 +00:00
util util/fossilize_db: Fix double free in error handling. 2022-01-24 01:09:21 +00:00
virtio venus: make vn_QueueSubmit async for native submissions 2022-01-28 19:15:52 +00:00
vulkan vulkan/wsi: Add image create and bind helpers 2022-01-31 19:46:55 +00:00
meson.build meson: start building intel earlier. 2022-01-20 06:41:17 +00:00