From: Timothy Arceri Date: Wed, 18 Jan 2017 23:41:57 +0000 (+1100) Subject: glsl_to_nir: skip ir_var_shader_shared variables X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=aa021d50c0a81b2d067a3c3aa7eb9789b91caa4b;p=mesa.git glsl_to_nir: skip ir_var_shader_shared variables These should be lowered away in GLSL IR but if we don't get dead code to clean them up it causes issues in glsl_to_nir. We wan't to drop as many GLSL IR opts in future as we can so this makes glsl_to_nir just ignore the vars if it sees them. In future we will want to just use the nir lowering pass that Vulkan currently uses. Acked-by: Elie Tournier Reviewed-by: Kenneth Graunke --- diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index b98d6cb4ac2..189eb24ac61 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -308,6 +308,13 @@ constant_copy(ir_constant *ir, void *mem_ctx) void nir_visitor::visit(ir_variable *ir) { + /* TODO: In future we should switch to using the NIR lowering pass but for + * now just ignore these variables as GLSL IR should have lowered them. + * Anything remaining are just dead vars that weren't cleaned up. + */ + if (ir->data.mode == ir_var_shader_shared) + return; + nir_variable *var = ralloc(shader, nir_variable); var->type = ir->type; var->name = ralloc_strdup(var, ir->name);