[Mesa-dev] V2 ARB_enhanced_layouts component qualifier support

eocallaghan at alterapraxis.com eocallaghan at alterapraxis.com
Mon Dec 28 22:46:42 PST 2015

On 2015-12-29 16:00, Timothy Arceri wrote:
> This series adds support for the component layout qualifier by 
> enhancing
> the varying packing pass at the GLSL IR level. The advantage to this
> approach is that its fairly simple and will work for all drivers, the
> disadvantage it that it relies on optimisation passes to clean up the
> mess.

I'm personally a fan of this approach so I think abstract IR passes are
the way to go over hand holding bulky driver backends. I see the main
issue is around the interaction with tessellation, admittedly patch 16
I don't fully understand the implications although patch 26 helped 
a little about the issue. It does sound to me that the duplicate 
from AoA and so on are solvable at the IR level in any case. Thus, this
series is:

Reviewed-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>

>  [PATCH 01/28] glsl: only add outward facing varyings to resourse list
>  Patch 1: Bugfix for SSO but also required later in the series to add
>  packed vertex inputs to the resource list.
>  [PATCH 02/28] glsl: move lowering after matching validation
>  [PATCH 03/28] glsl: don't change the varying type in validation code
>  [PATCH 04/28] glsl: remove unused varyings before packing them
>  Patches 2-4: Required to allow unused varyings with explicit locations
>  to be removed before packing.
>  [PATCH 05/28] glsl: create helper to remove outer vertex index array
>  [PATCH 06/28] glsl: fix overlapping of varying locations for arrays
>  [PATCH 07/28] glsl: don't try adding build-ins to explicit locations
>  Patches 5-7: are SSO bugfixes
>  [PATCH 08/28] glsl: parse component layout qualifier
>  [PATCH 09/28] glsl: validate and store component layout qualifier in
>  [PATCH 10/28] glsl: fix cross validation for explicit locations on
>  [PATCH 11/28] glsl: cross validate varyings with a component
>  [PATCH 12/28] glsl: update explicit location matching to support
>  [PATCH 13/28] glsl: include varyings with explicit locations in slot
>  [PATCH 14/28] glsl: pass disable_varying_packing bool to the lowering
>  [PATCH 15/28] glsl: add support for packing varyings with explicit
>  [PATCH 16/28] glsl: don't pack tessellation stages like we do other
>  [PATCH 17/28] glsl: enable lowering of varyings with explicit
>  [PATCH 18/28] glsl: validate linking of intrastage component
>  [PATCH 19/28] glsl: add support for explicit components to frag
>  [PATCH 20/28] glsl: pack vertex attributes with component layout
>  [PATCH 21/28] glsl: pack fragment shader outputs with component
>  [PATCH 22/28] glsl: get geometry shader vertex count from type when
>  [PATCH 23/28] glsl: add pack varying to resource list for vertex
>  [PATCH 24/28] glsl: make needs_lowering() a shared packing helper
>  [PATCH 25/28] glsl: move packed varying creation code to a helper
>  [PATCH 26/28] glsl: lower tessellation varyings packed with component
>  [PATCH 27/28] mesa: add LOCATION_COMPONENT support to
>  Patches 8-28: add the component layout qualifier support.
>  [PATCH 28/28] docs: mark component layout qualifiers as DONE
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

More information about the mesa-dev mailing list