From c5fa0c2a2a73e3df7c17acfca71583905fbd5896 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 2 Sep 2025 11:54:19 +0200 Subject: [PATCH] radv: allow to inline all push constants even with dynamic descriptors Dynamic descriptors are uploaded/emitted separately now. fossils-db (GFX1201): Totals from 3299 (4.14% of 79646) affected shaders: Instrs: 1811407 -> 1811391 (-0.00%); split: -0.19%, +0.19% CodeSize: 9339360 -> 9339824 (+0.00%); split: -0.15%, +0.16% Latency: 7419818 -> 7417817 (-0.03%); split: -0.06%, +0.04% InvThroughput: 1647859 -> 1647821 (-0.00%); split: -0.00%, +0.00% VClause: 30536 -> 30534 (-0.01%) SClause: 31009 -> 30642 (-1.18%); split: -1.55%, +0.37% Copies: 111591 -> 112131 (+0.48%); split: -0.72%, +1.20% PreSGPRs: 127639 -> 127628 (-0.01%) SALU: 290492 -> 291034 (+0.19%); split: -0.28%, +0.46% Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader_args.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index d4ba95099b1..f0189e34206 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -32,11 +32,8 @@ allocate_inline_push_consts(const struct radv_shader_info *info, struct user_sgp uint64_t mask = info->inline_push_constant_mask; uint8_t num_push_consts = util_bitcount64(mask); - /* Disable the default push constants path if all constants can be inlined and if shaders don't - * use dynamic descriptors. - */ - if (num_push_consts <= MIN2(remaining_sgprs + 1, AC_MAX_INLINE_PUSH_CONSTS) && info->can_inline_all_push_constants && - !info->loads_dynamic_offsets) { + /* Disable the default push constants path if all constants can be inlined. */ + if (num_push_consts <= MIN2(remaining_sgprs + 1, AC_MAX_INLINE_PUSH_CONSTS) && info->can_inline_all_push_constants) { user_sgpr_info->inlined_all_push_consts = true; remaining_sgprs++; } else {