anv/pipeline: Lower indirect temporaries and inputs
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 5 Jan 2016 21:42:00 +0000 (13:42 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 5 Jan 2016 21:42:52 +0000 (13:42 -0800)
src/vulkan/anv_pipeline.c

index 97ad96b46bd9e61ac8a62656cac79a48e61ab315..769afe8ed722ce1764ba00b3bcb774b428098982 100644 (file)
@@ -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;
 }