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

intel/nir: Use the correct indirect lowering masks in link_shaders

Previously, if we were linking a vec4 VS with a SIMD8/16 FS, we wouldn't
lower indirects on the fragment shader which is wrong.  Instead of using
a single indirect mask, take advantage of our new little helper.

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit 951a5dc4)
parent 1f145df1
No related branches found
No related tags found
Loading
......@@ -675,16 +675,14 @@ brw_nir_link_shaders(const struct brw_compiler *compiler,
NIR_PASS_V(*producer, nir_lower_global_vars_to_local);
NIR_PASS_V(*consumer, nir_lower_global_vars_to_local);
nir_variable_mode indirect_mask = (nir_variable_mode) 0;
if (compiler->glsl_compiler_options[(*producer)->info.stage].EmitNoIndirectTemp)
indirect_mask = nir_var_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, indirect_mask);
NIR_PASS_V(*consumer, nir_lower_indirect_derefs, indirect_mask);
NIR_PASS_V(*producer, nir_lower_indirect_derefs,
brw_nir_no_indirect_mask(compiler, (*producer)->info.stage));
NIR_PASS_V(*consumer, nir_lower_indirect_derefs,
brw_nir_no_indirect_mask(compiler, (*consumer)->info.stage));
const bool p_is_scalar =
compiler->scalar_stage[(*producer)->info.stage];
......
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