diff options
author | Timothy Arceri <[email protected]> | 2017-01-19 10:41:57 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-04-24 12:08:14 +1000 |
commit | aa021d50c0a81b2d067a3c3aa7eb9789b91caa4b (patch) | |
tree | 0f1d066ac5019cfdee99df9a6a94692da3b11cc7 | |
parent | 7a7ee40c2de01a927d78852b18fc0b93e780df9c (diff) |
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/compiler/glsl/glsl_to_nir.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
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); |