From: Samuel Pitoiset Date: Tue, 25 Jun 2019 10:05:35 +0000 (+0200) Subject: radv/gfx10: fix a possible hang with exp pos0 with done=0 and exec=0 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=34b185cc43736c3c4e7cd9d6bb994517f688ec71;p=mesa.git radv/gfx10: fix a possible hang with exp pos0 with done=0 and exec=0 Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index e310c5c495e..bf5571f30c7 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -2989,6 +2989,14 @@ handle_vs_outputs_post(struct radv_shader_context *ctx, num_pos_exports++; } + /* Navi10-14 skip POS0 exports if EXEC=0 and DONE=0, causing a hang. + * Setting valid_mask=1 prevents it and has no other effect. + */ + if (ctx->ac.family == CHIP_NAVI10 || + ctx->ac.family == CHIP_NAVI12 || + ctx->ac.family == CHIP_NAVI14) + pos_args[0].valid_mask = 1; + pos_idx = 0; for (i = 0; i < 4; i++) { if (!pos_args[i].out[0])