[Mesa-dev] [PATCH 2/3] radv: Don't use vgpr indexing for outputs on GFX9.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Tue Nov 7 09:00:49 UTC 2017


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 <airlied at redhat.com>

(cherry-pick of 6ce550453f1)
---
 src/amd/vulkan/radv_pipeline.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index e5487fa665c..56b987afda9 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -290,6 +290,12 @@ radv_shader_compile_to_nir(struct radv_device *device,
 	nir_variable_mode indirect_mask = 0;
 	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
 	 * causing the gpu to hang.
-- 
2.15.0



More information about the mesa-dev mailing list