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?

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to