From aa021d50c0a81b2d067a3c3aa7eb9789b91caa4b Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Thu, 19 Jan 2017 10:41:57 +1100 Subject: [PATCH] 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 --- src/compiler/glsl/glsl_to_nir.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index b98d6cb..189eb24 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); -- 2.7.4