intel/compiler: Use NIR_PASS(_, ...)
I don't know when this was added but it's really neat and we should use it instead of NIR_PASS_V since NIR_DEBUG=print and a few validation things will work better. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17014>
This commit is contained in:

committed by
Marge Bot

parent
65bafa2a35
commit
844a70f439
@@ -959,8 +959,8 @@ brw_nir_link_shaders(const struct brw_compiler *compiler,
|
||||
const bool c_is_scalar = compiler->scalar_stage[consumer->info.stage];
|
||||
|
||||
if (p_is_scalar && c_is_scalar) {
|
||||
NIR_PASS_V(producer, nir_lower_io_to_scalar_early, nir_var_shader_out);
|
||||
NIR_PASS_V(consumer, nir_lower_io_to_scalar_early, nir_var_shader_in);
|
||||
NIR_PASS(_, producer, nir_lower_io_to_scalar_early, nir_var_shader_out);
|
||||
NIR_PASS(_, consumer, nir_lower_io_to_scalar_early, nir_var_shader_in);
|
||||
brw_nir_optimize(producer, compiler, p_is_scalar, false);
|
||||
brw_nir_optimize(consumer, compiler, c_is_scalar, false);
|
||||
}
|
||||
@@ -968,31 +968,31 @@ brw_nir_link_shaders(const struct brw_compiler *compiler,
|
||||
if (nir_link_opt_varyings(producer, consumer))
|
||||
brw_nir_optimize(consumer, compiler, c_is_scalar, false);
|
||||
|
||||
NIR_PASS_V(producer, nir_remove_dead_variables, nir_var_shader_out, NULL);
|
||||
NIR_PASS_V(consumer, nir_remove_dead_variables, nir_var_shader_in, NULL);
|
||||
NIR_PASS(_, producer, nir_remove_dead_variables, nir_var_shader_out, NULL);
|
||||
NIR_PASS(_, consumer, nir_remove_dead_variables, nir_var_shader_in, NULL);
|
||||
|
||||
if (nir_remove_unused_varyings(producer, consumer)) {
|
||||
NIR_PASS_V(producer, nir_lower_global_vars_to_local);
|
||||
NIR_PASS_V(consumer, nir_lower_global_vars_to_local);
|
||||
NIR_PASS(_, producer, nir_lower_global_vars_to_local);
|
||||
NIR_PASS(_, consumer, nir_lower_global_vars_to_local);
|
||||
|
||||
/* The backend might not be able to handle indirects on
|
||||
* temporaries so we need to lower indirects on any of the
|
||||
* varyings we have demoted here.
|
||||
*/
|
||||
NIR_PASS_V(producer, nir_lower_indirect_derefs,
|
||||
brw_nir_no_indirect_mask(compiler, producer->info.stage),
|
||||
UINT32_MAX);
|
||||
NIR_PASS_V(consumer, nir_lower_indirect_derefs,
|
||||
brw_nir_no_indirect_mask(compiler, consumer->info.stage),
|
||||
UINT32_MAX);
|
||||
NIR_PASS(_, producer, nir_lower_indirect_derefs,
|
||||
brw_nir_no_indirect_mask(compiler, producer->info.stage),
|
||||
UINT32_MAX);
|
||||
NIR_PASS(_, consumer, nir_lower_indirect_derefs,
|
||||
brw_nir_no_indirect_mask(compiler, consumer->info.stage),
|
||||
UINT32_MAX);
|
||||
|
||||
brw_nir_optimize(producer, compiler, p_is_scalar, false);
|
||||
brw_nir_optimize(consumer, compiler, c_is_scalar, false);
|
||||
}
|
||||
|
||||
NIR_PASS_V(producer, nir_lower_io_to_vector, nir_var_shader_out);
|
||||
NIR_PASS_V(producer, nir_opt_combine_stores, nir_var_shader_out);
|
||||
NIR_PASS_V(consumer, nir_lower_io_to_vector, nir_var_shader_in);
|
||||
NIR_PASS(_, producer, nir_lower_io_to_vector, nir_var_shader_out);
|
||||
NIR_PASS(_, producer, nir_opt_combine_stores, nir_var_shader_out);
|
||||
NIR_PASS(_, consumer, nir_lower_io_to_vector, nir_var_shader_in);
|
||||
|
||||
if (producer->info.stage != MESA_SHADER_TESS_CTRL &&
|
||||
producer->info.stage != MESA_SHADER_MESH &&
|
||||
@@ -1009,9 +1009,9 @@ brw_nir_link_shaders(const struct brw_compiler *compiler,
|
||||
*/
|
||||
NIR_PASS_V(producer, nir_lower_io_to_temporaries,
|
||||
nir_shader_get_entrypoint(producer), true, false);
|
||||
NIR_PASS_V(producer, nir_lower_global_vars_to_local);
|
||||
NIR_PASS_V(producer, nir_split_var_copies);
|
||||
NIR_PASS_V(producer, nir_lower_var_copies);
|
||||
NIR_PASS(_, producer, nir_lower_global_vars_to_local);
|
||||
NIR_PASS(_, producer, nir_split_var_copies);
|
||||
NIR_PASS(_, producer, nir_lower_var_copies);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user