On Tue, Sep 5, 2017 at 9:54 PM, Timothy Arceri <tarc...@itsqueeze.com> wrote: > > On 06/09/17 11:23, Ilia Mirkin wrote: >> >> The enhanced layouts spec has all kinds of restrictions about what can >> and cannot be mixed in a location. Integer/float(/presumably double) >> can't occupy a single location, interpolation has to be the same, as >> well as auxiliary storage (including patch!). >> >> The implication of this is ... don't specify explicit locations/components >> if you want better packing, since the auto-packer doesn't care at all >> about most of these restrictions. Sad. > > > There are still use cases such as SSO, tessellation shaders and varyings > used by interpolateAt (although we just enable the enhanced layout packing > rules by default for those anyway) were we cannot use the auto-packer. > > As far as the patch goes this should really be in link_varyings.cpp rather > than linker.cpp, also there is already related validation code in > cross_validate_outputs_to_inputs() any reason for not just modifying the > code there?
This applies to whole shader stages. So e.g. in SSO, you still validate the inputs and the outputs. Similarly, you do this for vertex shader inputs. Ideally it'd be done earlier on, but we need to wait for the interface types to go away, or else it'd be a disaster. Most of link_varyings is concerned with inter-stage logic. It could be moved there, of course, just didn't really seem to belong. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev