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 <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37768>
This commit is contained in:
Samuel Pitoiset
2025-09-02 11:54:19 +02:00
committed by Marge Bot
parent a47952d495
commit c5fa0c2a2a
+2 -5
View File
@@ -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 {