[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 
clarify
a little about the issue. It does sound to me that the duplicate 
dimensionality
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