diff options
author | Bas Nieuwenhuizen <[email protected]> | 2017-10-22 00:56:09 +0200 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2017-10-22 02:36:37 +0200 |
commit | 6ce550453f1df64caeb956f215d32da96b89f2b1 (patch) | |
tree | 9f94aa8336a236b142fd91bae61ec8b9908bf6dd /src | |
parent | ad727b96b650a8223f9853f1cde8353f4bf83c06 (diff) |
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 <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/amd/vulkan/radv_shader.c | 5 |
1 files changed, 5 insertions, 0 deletions
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 |