From 6ce550453f1df64caeb956f215d32da96b89f2b1 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Sun, 22 Oct 2017 00:56:09 +0200 Subject: 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 --- src/amd/vulkan/radv_shader.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') 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 -- cgit v1.2.3