From: Bas Nieuwenhuizen Date: Sat, 21 Oct 2017 22:56:09 +0000 (+0200) Subject: radv: Don't use vgpr indexing for outputs on GFX9. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6ce550453f1df64caeb956f215d32da96b89f2b1;p=mesa.git radv: Don't use vgpr indexing for outputs on GFX9. Due to LLVM bugs. Fixes a bunch of dEQP-VK.glsl.indexing.* tests. Fixes: e38685cc62e 'Revert "radv: disable support for VEGA for now."' Reviewed-by: Dave Airlie --- diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index e572f693203..07e68d6032b 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -264,6 +264,11 @@ radv_shader_compile_to_nir(struct radv_device *device, !llvm_has_working_vgpr_indexing)) { indirect_mask |= nir_var_shader_in; } + if (!llvm_has_working_vgpr_indexing && + (nir->info.stage == MESA_SHADER_VERTEX || + nir->info.stage == MESA_SHADER_TESS_EVAL || + nir->info.stage == MESA_SHADER_FRAGMENT)) + indirect_mask |= nir_var_shader_out; /* TODO: We shouldn't need to do this, however LLVM isn't currently * smart enough to handle indirects without causing excess spilling