On Wednesday, April 20, 2016 3:42:01 PM PDT Bas Nieuwenhuizen wrote: > The mode should stay the same as the original struct. In > particular, shared should not be changed to temporary. > > Signed-off-by: Bas Nieuwenhuizen <[email protected]> > --- > src/compiler/glsl/opt_structure_splitting.cpp | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/compiler/glsl/opt_structure_splitting.cpp b/src/compiler/ glsl/opt_structure_splitting.cpp > index 0d18a2f..f4c129e 100644 > --- a/src/compiler/glsl/opt_structure_splitting.cpp > +++ b/src/compiler/glsl/opt_structure_splitting.cpp > @@ -351,7 +351,7 @@ do_structure_splitting(exec_list *instructions) > entry->components[i] = > new(entry->mem_ctx) ir_variable(type->fields.structure[i].type, > name, > - ir_var_temporary); > + (ir_variable_mode) > entry->var->data.mode); > entry->var->insert_before(entry->components[i]); > } > >
ir_structure_reference_visitor::get_variable_entry bails for uniforms, shader inputs/outputs, and SSBOs. I believe the intention was to bail on anything other than auto/temporary variables. Presumably, we just forgot to disallow shared here. I think the primary reason for doing that was because uniforms/SSBOs are visible via API introspection, and inputs/outputs needed has cross-stage implications. I don't know much about shared variables, but as long as they're not visible via the API, they're probably safe to split. If so, this patch seems reasonable. Jordan, what do you think?
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
