diff --git a/src/amd/common/ac_shader_args.h b/src/amd/common/ac_shader_args.h index e8d743cd961..62e3f48d9c7 100644 --- a/src/amd/common/ac_shader_args.h +++ b/src/amd/common/ac_shader_args.h @@ -27,7 +27,10 @@ #include #include -#define AC_MAX_INLINE_PUSH_CONSTS 8 +/* Maximum dwords of inline push constants when the indirect path is still used */ +#define AC_MAX_INLINE_PUSH_CONSTS_WITH_INDIRECT 8 +/* Maximum dwords of inline push constants when the indirect path is not used */ +#define AC_MAX_INLINE_PUSH_CONSTS 32 enum ac_arg_regfile { diff --git a/src/amd/llvm/ac_shader_abi.h b/src/amd/llvm/ac_shader_abi.h index 735d2cdda0a..840d33cfea0 100644 --- a/src/amd/llvm/ac_shader_abi.h +++ b/src/amd/llvm/ac_shader_abi.h @@ -33,8 +33,6 @@ #define AC_LLVM_MAX_OUTPUTS (VARYING_SLOT_VAR31 + 1) -#define AC_MAX_INLINE_PUSH_CONSTS 8 - /* Document the shader ABI during compilation. This is what allows radeonsi and * radv to share a compiler backend. */ diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index 6e3c56558c5..c4c95bf4d74 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -134,7 +134,7 @@ allocate_inline_push_consts(const struct radv_shader_info *info, remaining_sgprs++; } else { /* Clamp to the maximum number of allowed inlined push constants. */ - while (num_push_consts > MIN2(remaining_sgprs, AC_MAX_INLINE_PUSH_CONSTS)) { + while (num_push_consts > MIN2(remaining_sgprs, AC_MAX_INLINE_PUSH_CONSTS_WITH_INDIRECT)) { num_push_consts--; mask &= ~BITFIELD64_BIT(util_last_bit64(mask) - 1); }