move lower_deref_instrs
Signed-off-by: Rob Clark <robdclark@gmail.com> Acked-by: Rob Clark <robdclark@gmail.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:

committed by
Jason Ekstrand

parent
d7b0be48ef
commit
d143f6c856
@@ -2034,6 +2034,8 @@ void radv_create_shaders(struct radv_pipeline *pipeline,
|
|||||||
nir[i] = nir_shader_clone(NULL, nir[i]);
|
nir[i] = nir_shader_clone(NULL, nir[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NIR_PASS_V(nir[i], nir_lower_deref_instrs, ~0);
|
||||||
|
|
||||||
if (first != last) {
|
if (first != last) {
|
||||||
nir_variable_mode mask = 0;
|
nir_variable_mode mask = 0;
|
||||||
|
|
||||||
|
@@ -177,8 +177,6 @@ radv_shader_compile_to_nir(struct radv_device *device,
|
|||||||
assert(exec_list_length(&nir->functions) == 1);
|
assert(exec_list_length(&nir->functions) == 1);
|
||||||
struct exec_node *node = exec_list_get_head(&nir->functions);
|
struct exec_node *node = exec_list_get_head(&nir->functions);
|
||||||
entry_point = exec_node_data(nir_function, node, node);
|
entry_point = exec_node_data(nir_function, node, node);
|
||||||
|
|
||||||
NIR_PASS_V(nir, nir_lower_deref_instrs, ~0);
|
|
||||||
} else {
|
} else {
|
||||||
uint32_t *spirv = (uint32_t *) module->data;
|
uint32_t *spirv = (uint32_t *) module->data;
|
||||||
assert(module->size % 4 == 0);
|
assert(module->size % 4 == 0);
|
||||||
@@ -253,8 +251,6 @@ radv_shader_compile_to_nir(struct radv_device *device,
|
|||||||
assert(exec_list_length(&nir->functions) == 1);
|
assert(exec_list_length(&nir->functions) == 1);
|
||||||
entry_point->name = ralloc_strdup(entry_point, "main");
|
entry_point->name = ralloc_strdup(entry_point, "main");
|
||||||
|
|
||||||
NIR_PASS_V(nir, nir_lower_deref_instrs, ~0);
|
|
||||||
|
|
||||||
/* Make sure we lower constant initializers on output variables so that
|
/* Make sure we lower constant initializers on output variables so that
|
||||||
* nir_remove_dead_variables below sees the corresponding stores
|
* nir_remove_dead_variables below sees the corresponding stores
|
||||||
*/
|
*/
|
||||||
|
@@ -589,8 +589,6 @@ st_nir_get_mesa_program(struct gl_context *ctx,
|
|||||||
|
|
||||||
nir_shader *nir = st_glsl_to_nir(st, prog, shader_program, shader->Stage);
|
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);
|
set_st_program(prog, shader_program, nir);
|
||||||
prog->nir = nir;
|
prog->nir = nir;
|
||||||
}
|
}
|
||||||
@@ -676,6 +674,7 @@ st_link_nir(struct gl_context *ctx,
|
|||||||
mask = (nir_variable_mode)(mask | nir_var_shader_out);
|
mask = (nir_variable_mode)(mask | nir_var_shader_out);
|
||||||
|
|
||||||
nir_shader *nir = shader->Program->nir;
|
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);
|
NIR_PASS_V(nir, nir_lower_io_to_scalar_early, mask);
|
||||||
st_nir_opts(nir, is_scalar[i]);
|
st_nir_opts(nir, is_scalar[i]);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user