From 7145b20afb3eaf40b3b40b9a191d05d7fd23a4cb Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 8 Jan 2018 15:19:34 +0100 Subject: [PATCH] amd/common: bump the number of available user SGPRS to 32 on GFX9 Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/common/ac_nir_to_llvm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 840d27e..932d648 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; -- 2.7.4