summaryrefslogtreecommitdiffstats
path: root/src/vulkan/anv_pipeline.c
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-01-05 13:42:00 -0800
committerJason Ekstrand <[email protected]>2016-01-05 13:42:52 -0800
commitec899f6b4220509626c14b32a2b048dc3df49cce (patch)
treefa4701bcbdbc7826bc9c3a8a224da7693bd26528 /src/vulkan/anv_pipeline.c
parentbff45dc44e92ab9dd790a2ba00d5b29a5527072b (diff)
anv/pipeline: Lower indirect temporaries and inputs
Diffstat (limited to 'src/vulkan/anv_pipeline.c')
-rw-r--r--src/vulkan/anv_pipeline.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/vulkan/anv_pipeline.c b/src/vulkan/anv_pipeline.c
index 97ad96b46bd..769afe8ed72 100644
--- a/src/vulkan/anv_pipeline.c
+++ b/src/vulkan/anv_pipeline.c
@@ -143,6 +143,12 @@ anv_shader_compile_to_nir(struct anv_device *device,
nir_shader_gather_info(nir, entry_point->impl);
+ uint32_t indirect_mask = (1 << nir_var_shader_in);
+ if (compiler->glsl_compiler_options[stage].EmitNoIndirectTemp)
+ indirect_mask |= 1 << nir_var_local;
+
+ nir_lower_indirect_derefs(nir, indirect_mask);
+
return nir;
}