From 2e63da865b038b2eccf2eddf45d3f49f7a113caa Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 28 Nov 2024 12:55:08 +0000 Subject: [PATCH] radv: fix expanded push constant loads when all are inlined Signed-off-by: Rhys Perry Reviewed-by: Georg Lehmann Part-of: --- src/amd/vulkan/nir/radv_nir_apply_pipeline_layout.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/amd/vulkan/nir/radv_nir_apply_pipeline_layout.c b/src/amd/vulkan/nir/radv_nir_apply_pipeline_layout.c index fd67c3eb18f..78032ca3c3b 100644 --- a/src/amd/vulkan/nir/radv_nir_apply_pipeline_layout.c +++ b/src/amd/vulkan/nir/radv_nir_apply_pipeline_layout.c @@ -378,6 +378,14 @@ load_push_constant(nir_builder *b, apply_layout_state *state, nir_intrinsic_inst continue; } + if (!state->args->ac.push_constants.used) { + /* Assume this is an inlined push constant load which was expanded to include dwords which are not inlined. */ + assert(const_offset != -1); + data[num_loads++] = nir_undef(b, 1, 32); + start += 1; + continue; + } + if (!offset) { addr = get_scalar_arg(b, 1, state->args->ac.push_constants); addr = convert_pointer_to_64_bit(b, state, addr);