From b38445b21873a36765d9c663786f864af9ceb1a7 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Sun, 16 Sep 2018 12:28:33 +0200 Subject: [PATCH] radv: Only allow 16 user SGPRs for compute on GFX9+. Apparently for compute there are only 16 instead of the 32 for the graphics path. Fixes dEQP-VK.binding_model.descriptorset_random.sets16.noarray.ubolimitlow.sbolimitlow.imglimitlow.noiub.comp.0 CC: Reviewed-by: Samuel Pitoiset (cherry picked from commit 0dd8189f159258ad8684036b0d696dbb58a268ca) Conflicts Resolved by Dylan Conflicts: src/amd/vulkan/radv_nir_to_llvm.c --- src/amd/vulkan/radv_nir_to_llvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index b6f07bd6b62..ef14e7b53af 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -583,7 +583,7 @@ static void allocate_user_sgprs(struct radv_shader_context *ctx, if (ctx->shader_info->info.loads_push_constants) user_sgpr_info->sgpr_count += 2; - uint32_t available_sgprs = ctx->options->chip_class >= GFX9 ? 32 : 16; + uint32_t available_sgprs = ctx->options->chip_class >= GFX9 && stage != MESA_SHADER_COMPUTE ? 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)) {