summaryrefslogtreecommitdiffstats
path: root/src/amd/common/ac_nir_to_llvm.c
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2018-01-08 15:19:34 +0100
committerSamuel Pitoiset <[email protected]>2018-01-10 12:35:08 +0100
commit7145b20afb3eaf40b3b40b9a191d05d7fd23a4cb (patch)
treea9da1767e7957d153af0d7b6e3e07db1a7d15935 /src/amd/common/ac_nir_to_llvm.c
parenta1f1f708c0d3f7ee8fb9ba013aeec1a2d20608d2 (diff)
amd/common: bump the number of available user SGPRS to 32 on GFX9
Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/common/ac_nir_to_llvm.c')
-rw-r--r--src/amd/common/ac_nir_to_llvm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 840d27e7a8e..932d6480828 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -600,7 +600,9 @@ static void allocate_user_sgprs(struct nir_to_llvm_context *ctx,
if (ctx->shader_info->info.loads_push_constants)
user_sgpr_info->sgpr_count += 2;
- uint32_t remaining_sgprs = 16 - user_sgpr_info->sgpr_count;
+ uint32_t available_sgprs = ctx->options->chip_class >= GFX9 ? 32 : 16;
+ uint32_t remaining_sgprs = available_sgprs - user_sgpr_info->sgpr_count;
+
if (remaining_sgprs / 2 < util_bitcount(ctx->shader_info->info.desc_set_used_mask)) {
user_sgpr_info->sgpr_count += 2;
user_sgpr_info->indirect_all_descriptor_sets = true;