On Mon, 2016-10-24 at 12:23 +1100, Timothy Arceri wrote: > On Sat, 2016-10-22 at 23:09 +0300, Andres Gomez wrote: > > Consider this example: > > > > " #version 150 core > > #extension GL_ARB_shading_language_420pack: require > > #extension GL_ARB_explicit_attrib_location: require > > > > layout(location=0) out vec4 o; > > layout(binding=2) layout(binding=3, std140) uniform U { > > vec4 a; > > } u[2];" > > > > As there is 2 layout-qualifiers for the uniform U and the binding > > layout-qualifier-id is duplicated, the rules set by the > > ARB_shading_language_420pack spec state that the rightmost should > > prevail. > > > > Our ast_type_qualifier merges with others in a way that if the value > > for a layout-qualifier-id is set in both, the object being merged > > overwrites the value of the object invoking the merge. Hence, the > > merge has to happen from the left layout towards the right one and > > this was not happening for interface blocks because we were merging > > into the default layout qualifier. > > > > Now, the merge is done from left to right and, as a last step, we > > merge into the default layout qualifier if needed, so the values of > > the explicit layouts prevail over it. > > > > Signed-off-by: Andres Gomez <ago...@igalia.com> > > > That patch looks logically correct. However I'd really like it if you > could rename the existing layout member to default_layout and make the > new one layout rather than layout_helper. > > I understand this will likely be a few more changes but the end result > will be much easier to follow.
I actually have an implementation like that in a different branch. That was my first attempt, I changed later to the current one because I thought it was easier to understand that way ☺ I will recover that other implementation. -- Br, Andres _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev