mesa/src/amd/vulkan/meta
Samuel Pitoiset 3ca2f71f3d radv: fix conditional rendering with DGC and non native 32-bit predicate
When the hardware doesn't natively support 32-bit predication, the
driver has a fallback which allocates a 64-bit predicate to the upload
BO in order to copy the original value.

But when conditional rendering is enabled in the stateCommandBuffer
which is used by preprocess() and the execute() is recorded also in the
stateCommandBuffer. If the preprocess() is recorded in a different
cmdbuf which is submitted before the cmdbuf that contains execute(),
the fallback (ie. alloc + COPY_DATA) will be performed after. This would
cause the predicate value to be always 0.

To fix that, keep track of the user predication VA which is the only
VA that needs to be used by DGC because it reads 32-bit from the shader.

This fixes a very weird corner case with vkd3d-proton.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13143
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34953>
2025-05-15 05:51:04 +00:00
..
radv_meta.c radv: rework suspend/resume user conditional rendering 2025-04-03 08:54:36 +00:00
radv_meta.h radv: Make radv_update_memory non-static 2025-05-12 17:45:25 +02:00
radv_meta_astc_decode.c radv: rework suspend/resume user conditional rendering 2025-04-03 08:54:36 +00:00
radv_meta_blit.c radv/meta: simplify dealing with image layouts for blits/resolves 2025-04-18 17:21:24 +02:00
radv_meta_blit2d.c radv/meta: fix color<->depth/stencil image copies 2025-03-26 13:27:03 +00:00
radv_meta_buffer.c radv: Make radv_update_memory non-static 2025-05-12 17:45:25 +02:00
radv_meta_bufimage.c radv: re-introduce the compute vs CP DMA heuristic for copy/fill operations 2025-04-17 08:59:58 +00:00
radv_meta_clear.c radv: add radv_fill_image() helper 2025-04-17 08:59:58 +00:00
radv_meta_copy.c radv: fix GPU hangs with image copies for ASTC/ETC2 formats on transfer queue 2025-05-05 13:50:25 +00:00
radv_meta_copy_vrs_htile.c radv/meta: remove useless assertion in when copy VRS to HTILE 2025-02-28 08:05:13 +00:00
radv_meta_dcc_retile.c radv: use radv_image::bindings::addr more 2025-02-18 09:49:14 +01:00
radv_meta_decompress.c radv: add queue family assertions when doing decompression passes 2025-03-31 11:55:02 +00:00
radv_meta_etc_decode.c radv: rework suspend/resume user conditional rendering 2025-04-03 08:54:36 +00:00
radv_meta_fast_clear.c radv: fix conditional rendering with DGC and non native 32-bit predicate 2025-05-15 05:51:04 +00:00
radv_meta_fmask_copy.c radv: re-introduce the compute vs CP DMA heuristic for copy/fill operations 2025-04-17 08:59:58 +00:00
radv_meta_fmask_expand.c radv: add queue family assertions when doing decompression passes 2025-03-31 11:55:02 +00:00
radv_meta_resolve.c radv: add new helper to suspend/resume user conditional rendering 2025-04-03 08:54:36 +00:00
radv_meta_resolve_cs.c radv: Fix compute resolve rounding 2025-04-01 21:15:24 +01:00
radv_meta_resolve_fs.c radv/meta: simplify dealing with image layouts for blits/resolves 2025-04-18 17:21:24 +02:00