From 723ce7ce8f972e83e37b218df62aa2af51159eb0 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 13 Aug 2025 08:32:03 +0200 Subject: [PATCH] radv: fix reserving space for emitting push constants with DGC IES layout->push_constant_mask is only the DGC push constant mask (ie. the tokens that are specified), but with IES all push constants are emitted from the DGC shader. So it should be the total range of push constant. This used to work by luck due to the preprocess buffer alignment. Cc: mesa-stable Signed-off-by: Samuel Pitoiset Part-of: (cherry picked from commit 3359386145d0cd5c5392c03ff5474a1d8b852fdb) --- .pick_status.json | 2 +- src/amd/vulkan/radv_dgc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 20113834597..0b51d04f417 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2914,7 +2914,7 @@ "description": "radv: fix reserving space for emitting push constants with DGC IES", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/radv_dgc.c b/src/amd/vulkan/radv_dgc.c index beea7c184ca..87aad131797 100644 --- a/src/amd/vulkan/radv_dgc.c +++ b/src/amd/vulkan/radv_dgc.c @@ -393,7 +393,7 @@ radv_get_sequence_size(const struct radv_indirect_command_layout *layout, const *cmd_size += 3 * 4; need_copy = true; - *cmd_size += (3 * util_bitcount64(layout->push_constant_mask)) * 4; + *cmd_size += (3 * (pipeline_layout->push_constant_size / 4)) * 4; } else { struct radv_shader *shaders[MESA_VULKAN_SHADER_STAGES] = {0}; if (pipeline_info) {