Revert "i965: use nir_lower_indirect_derefs() for GLSL"
This reverts commit 9404439a75
. I didn't
intend to push it and it breaks clip and cull distance.
This commit is contained in:
@@ -177,6 +177,16 @@ anv_shader_compile_to_nir(struct anv_device *device,
|
|||||||
|
|
||||||
nir_shader_gather_info(nir, entry_point->impl);
|
nir_shader_gather_info(nir, entry_point->impl);
|
||||||
|
|
||||||
|
nir_variable_mode indirect_mask = 0;
|
||||||
|
if (compiler->glsl_compiler_options[stage].EmitNoIndirectInput)
|
||||||
|
indirect_mask |= nir_var_shader_in;
|
||||||
|
if (compiler->glsl_compiler_options[stage].EmitNoIndirectOutput)
|
||||||
|
indirect_mask |= nir_var_shader_out;
|
||||||
|
if (compiler->glsl_compiler_options[stage].EmitNoIndirectTemp)
|
||||||
|
indirect_mask |= nir_var_local;
|
||||||
|
|
||||||
|
nir_lower_indirect_derefs(nir, indirect_mask);
|
||||||
|
|
||||||
return nir;
|
return nir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -137,6 +137,19 @@ process_glsl_ir(struct brw_context *brw,
|
|||||||
|
|
||||||
do_copy_propagation(shader->ir);
|
do_copy_propagation(shader->ir);
|
||||||
|
|
||||||
|
bool lowered_variable_indexing =
|
||||||
|
lower_variable_index_to_cond_assign(shader->Stage, shader->ir,
|
||||||
|
options->EmitNoIndirectInput,
|
||||||
|
options->EmitNoIndirectOutput,
|
||||||
|
options->EmitNoIndirectTemp,
|
||||||
|
options->EmitNoIndirectUniform);
|
||||||
|
|
||||||
|
if (unlikely(brw->perf_debug && lowered_variable_indexing)) {
|
||||||
|
perf_debug("Unsupported form of variable indexing in %s; falling "
|
||||||
|
"back to very inefficient code generation\n",
|
||||||
|
_mesa_shader_stage_to_abbrev(shader->Stage));
|
||||||
|
}
|
||||||
|
|
||||||
bool progress;
|
bool progress;
|
||||||
do {
|
do {
|
||||||
progress = false;
|
progress = false;
|
||||||
|
@@ -485,16 +485,6 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir)
|
|||||||
/* Lower a bunch of stuff */
|
/* Lower a bunch of stuff */
|
||||||
OPT_V(nir_lower_var_copies);
|
OPT_V(nir_lower_var_copies);
|
||||||
|
|
||||||
nir_variable_mode indirect_mask = 0;
|
|
||||||
if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectInput)
|
|
||||||
indirect_mask |= nir_var_shader_in;
|
|
||||||
if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectOutput)
|
|
||||||
indirect_mask |= nir_var_shader_out;
|
|
||||||
if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectTemp)
|
|
||||||
indirect_mask |= nir_var_local;
|
|
||||||
|
|
||||||
nir_lower_indirect_derefs(nir, indirect_mask);
|
|
||||||
|
|
||||||
/* Get rid of split copies */
|
/* Get rid of split copies */
|
||||||
nir = nir_optimize(nir, is_scalar);
|
nir = nir_optimize(nir, is_scalar);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user