Mesa (master): intel/nir: Add a helper for getting the NoIndirect mask
Jason Ekstrand
jekstrand at kemper.freedesktop.org
Wed Nov 8 22:09:56 UTC 2017
Module: Mesa
Branch: master
Commit: 7364f080f9a272323ed3491f278a1eed3eb9b1a7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7364f080f9a272323ed3491f278a1eed3eb9b1a7
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Sat Oct 28 08:50:54 2017 -0700
intel/nir: Add a helper for getting the NoIndirect mask
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Cc: mesa-stable at lists.freedesktop.org
---
src/intel/compiler/brw_nir.c | 33 +++++++++++++++++++--------------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
index 5ed36fe1bf..821c38a866 100644
--- a/src/intel/compiler/brw_nir.c
+++ b/src/intel/compiler/brw_nir.c
@@ -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;
@@ -648,14 +659,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 |
More information about the mesa-commit
mailing list