mesa/src
Samuel Pitoiset 2e55357b33 radv: fix DGC with conditional rendering and task+mesh shaders
While I was investigating some task+mesh random GPU hangs in CI, I
finally found a sequence that caused a test failure:

dEQP-VK.dgc.ext.graphics.mesh.conditional_rendering.general.classic_bind_with_count_buffer_condition_false_with_task_shader
dEQP-VK.dgc.ext.graphics.mesh.token_draw_count.monolithic_with_task_shader

Executing these two tests in a row caused the second one to always fail
(tested on NAVI33).

After investigating I figured out that only the DGC GFX IB was
predicated (with IB2) and the DGC ACE IB was always running, although
without any mesh draws to consume the task output. It seems the
hardware is confused if another task+mesh draw is dispatched after that,
and this could cause failures or GPU hangs.

Fix this by resetting the number of DGC sequences to 0 when conditional
rendering is used. This is the only option to emulate conditional
rendering with DGC and ACE.

This also likely fixes DGC+RT on compute queue.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41939>
2026-06-02 16:23:18 +00:00
..
amd radv: fix DGC with conditional rendering and task+mesh shaders 2026-06-02 16:23:18 +00:00
android_stub android_stub: purge unused log utils 2026-05-01 20:23:23 +00:00
asahi hk: Add heap_memory_percent driconf support 2026-06-01 17:32:50 +00:00
broadcom v3dv: Add heap_memory_percent driconf support 2026-06-01 17:32:50 +00:00
c11
compiler nir/algebraic: prevent ffract optimization on lowered ffloor 2026-06-02 12:03:09 +00:00
drm-shim drm-shim: fix shim on GLX 2026-04-14 12:06:10 +00:00
egl egl/gbm: Eliminate max_age local variable 2026-05-29 16:38:01 +00:00
etnaviv etnaviv/ml: derive stride-2 destriding offsets from padding 2026-06-02 08:13:11 +00:00
freedreno tu: Disable FS in some cases even when FS explicitly writes D/S 2026-06-02 11:56:26 +02:00
gallium pan: Support lowering D24X8 to D24 2026-06-02 13:49:08 +00:00
gbm gbm: Replace VER_MIN with common MIN2 2026-04-30 13:00:03 +00:00
getopt
gfxstream gfxstream: disallow maintenance6 extension due to serialization bugs 2026-06-01 22:41:37 +00:00
glx glx/windows: Drop static from driwindowsCreateScreen() 2026-05-18 13:33:35 +00:00
gtest
imagination pvr: Add heap_memory_percent driconf support 2026-06-01 17:32:50 +00:00
imgui imgui: update copy and port all tools using it 2026-04-30 10:59:45 +00:00
intel intel/gen: drop noisy build spam 2026-06-01 21:02:09 +00:00
kosmickrisp vulkan: implement VK_EXT_debug_marker 2026-06-01 15:31:38 +00:00
loader loader: check if the kernel driver is amdgpu 2026-05-27 10:19:50 +00:00
mesa mesa: flush bitmap cache when scissor box changes 2026-05-29 03:38:55 +00:00
microsoft vulkan: implement VK_EXT_debug_marker 2026-06-01 15:31:38 +00:00
nouveau nvk: Do not report task and mesh stages as supported on pre-Turing 2026-06-02 15:09:43 +00:00
panfrost pan: Support lowering D24X8 to D24 2026-06-02 13:49:08 +00:00
poly poly: Fix range used for index unroll bounds checks 2026-05-26 10:39:00 +00:00
tool pps: Re-emit time clock_sync more regularly 2026-05-06 21:37:15 +00:00
util gallium: fix type size in z24_unorm_packed_pack_z_32unorm 2026-06-02 13:49:08 +00:00
virtio vulkan: implement VK_EXT_debug_marker 2026-06-01 15:31:38 +00:00
vulkan anti-lag: rework wait time calculation 2026-06-02 14:21:20 +00:00
x11 meson: Add support for buidling zink + Turnip/KGSL 2026-03-31 15:00:29 +00:00
.clang-format intel: add Jay 2026-04-10 18:21:21 +00:00
meson.build gallium/dril: Don't use gbm if there is no gbm configured 2026-02-17 08:24:02 +00:00