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 <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36753>
(cherry picked from commit 3359386145)
This commit is contained in:
Samuel Pitoiset 2025-08-13 08:32:03 +02:00 committed by Eric Engestrom
parent 1620d34de5
commit 723ce7ce8f
2 changed files with 2 additions and 2 deletions

View file

@ -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

View file

@ -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) {