From: Rob Clark <robdcl...@gmail.com> Signed-off-by: Rob Clark <robdcl...@gmail.com> --- src/amd/vulkan/radv_pipeline.c | 2 ++ src/amd/vulkan/radv_shader.c | 2 -- src/mesa/state_tracker/st_glsl_to_nir.cpp | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 0391147..96f024a 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -2033,6 +2033,8 @@ void radv_create_shaders(struct radv_pipeline *pipeline, if (i != last) mask = mask | nir_var_shader_out; + NIR_PASS_V(nir[i], nir_lower_deref_instrs, ~0); + if (!(flags & VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT)) { nir_lower_io_to_scalar_early(nir[i], mask); radv_optimize_nir(nir[i], false); diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 5897b2a..324fcc4 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -176,8 +176,6 @@ radv_shader_compile_to_nir(struct radv_device *device, assert(exec_list_length(&nir->functions) == 1); struct exec_node *node = exec_list_get_head(&nir->functions); entry_point = exec_node_data(nir_function, node, node); - - NIR_PASS_V(nir, nir_lower_deref_instrs, ~0); } else { uint32_t *spirv = (uint32_t *) module->data; assert(module->size % 4 == 0); diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index aa8fb58..c09e841 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -580,8 +580,6 @@ st_nir_get_mesa_program(struct gl_context *ctx, nir_shader *nir = st_glsl_to_nir(st, prog, shader_program, shader->Stage); - nir_lower_deref_instrs(nir, (nir_lower_deref_flags)~0); - set_st_program(prog, shader_program, nir); prog->nir = nir; } @@ -653,6 +651,7 @@ st_link_nir(struct gl_context *ctx, mask = (nir_variable_mode)(mask | nir_var_shader_out); nir_shader *nir = shader->Program->nir; + NIR_PASS_V(nir, nir_lower_deref_instrs, (nir_lower_deref_flags)~0); NIR_PASS_V(nir, nir_lower_io_to_scalar_early, mask); st_nir_opts(nir); } -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev