Skip to content
Snippets Groups Projects
Commit c40cf117 authored by Faith Ekstrand's avatar Faith Ekstrand :speech_balloon: Committed by Emil Velikov
Browse files

intel/nir: Add a helper for getting the NoIndirect mask

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit 7364f080)
parent 1b206e3b
No related branches found
No related tags found
Loading
......@@ -521,18 +521,29 @@ brw_nir_lower_cs_shared(nir_shader *nir)
this_progress; \
})
nir_shader *
brw_nir_optimize(nir_shader *nir, const struct brw_compiler *compiler,
bool is_scalar)
static nir_variable_mode
brw_nir_no_indirect_mask(const struct brw_compiler *compiler,
gl_shader_stage stage)
{
nir_variable_mode indirect_mask = 0;
if (compiler->glsl_compiler_options[nir->info.stage].EmitNoIndirectInput)
if (compiler->glsl_compiler_options[stage].EmitNoIndirectInput)
indirect_mask |= nir_var_shader_in;
if (compiler->glsl_compiler_options[nir->info.stage].EmitNoIndirectOutput)
if (compiler->glsl_compiler_options[stage].EmitNoIndirectOutput)
indirect_mask |= nir_var_shader_out;
if (compiler->glsl_compiler_options[nir->info.stage].EmitNoIndirectTemp)
if (compiler->glsl_compiler_options[stage].EmitNoIndirectTemp)
indirect_mask |= nir_var_local;
return indirect_mask;
}
nir_shader *
brw_nir_optimize(nir_shader *nir, const struct brw_compiler *compiler,
bool is_scalar)
{
nir_variable_mode indirect_mask =
brw_nir_no_indirect_mask(compiler, nir->info.stage);
bool progress;
do {
progress = false;
......@@ -637,14 +648,8 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir)
OPT(nir_lower_clip_cull_distance_arrays);
nir_variable_mode indirect_mask = 0;
if (compiler->glsl_compiler_options[nir->info.stage].EmitNoIndirectInput)
indirect_mask |= nir_var_shader_in;
if (compiler->glsl_compiler_options[nir->info.stage].EmitNoIndirectOutput)
indirect_mask |= nir_var_shader_out;
if (compiler->glsl_compiler_options[nir->info.stage].EmitNoIndirectTemp)
indirect_mask |= nir_var_local;
nir_variable_mode indirect_mask =
brw_nir_no_indirect_mask(compiler, nir->info.stage);
nir_lower_indirect_derefs(nir, indirect_mask);
nir_lower_int64(nir, nir_lower_imul64 |
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment