radv: fix allocating number of user sgprs if streamout is used
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 12 Sep 2019 13:58:25 +0000 (15:58 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 13 Sep 2019 05:55:30 +0000 (07:55 +0200)
streamout_buffers is assigned after that function, so the previous
fix was completely wrong. This probably fix something when streamout
buffers and push constants are used/inlined in the same shader.

Fixes: 378e2d24143 ("radv: fix computing number of user SGPRs for streamout buffers")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_nir_to_llvm.c

index f7249913ec5378c8a000a2b5ceb1968268a8df8c..88c0c514eaec4110522ab2dda0da1ca6aafbf690 100644 (file)
@@ -649,7 +649,7 @@ static void allocate_user_sgprs(struct radv_shader_context *ctx,
        if (ctx->shader_info->loads_push_constants)
                user_sgpr_count++;
 
-       if (ctx->streamout_buffers)
+       if (ctx->shader_info->so.num_outputs)
                user_sgpr_count++;
 
        uint32_t available_sgprs = ctx->options->chip_class >= GFX9 && stage != MESA_SHADER_COMPUTE ? 32 : 16;