<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [OpenGL CTS] KHR-GL45.enhanced_layouts.varying_block_member_locations fails"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=102621#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [OpenGL CTS] KHR-GL45.enhanced_layouts.varying_block_member_locations fails"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=102621">bug 102621</a>
              from <span class="vcard"><a class="email" href="mailto:estea@igalia.com" title="Eleni Maria Stea <estea@igalia.com>"> <span class="fn">Eleni Maria Stea</span></a>
</span></b>
        <pre>Section 4.7.1 from OpenGL 4.5 spec says:

When multiple shader stages are active, the outputs of one stage form an
interface
with the inputs of the next stage. At each such interface, shader inputs are
matched
up against outputs from the previous stage:
• An output block is  considered to match an input block in  the subsequent
shader if the two blocks have the same block name, and the members of the
block match exactly in name, type, qualification, and declaration order.
•An output variable is considered to match an input variable in the subsequent
shader if:
– the two variables match in name, type, and qualification,   and neither
has a location qualifier, or
– the   two   variables   are   declared   with   the   same
location and component layout qualifiers and match in type and qualification.

-----------------------------------------

As I understand it, this declaration (D1):

out Goku {
    vec4 gohan;
    layout (location = 4) vec4 goten;
    vec4 chichi;
} goku

is the wrong one, and it is put there to produce the compile error. The bug in
the test is that the declaration (D2):

Goku {
    vec4 gohan;
    vec4 goten;
    vec4 chichi;
} gokuARRAY;

doesn't match the declaration (D3):

Goku {
    layout (location = 2) vec4 gohan;
    layout (location = 4) vec4 goten;
    layout (location = 6) vec4 chichi;
} gokuARRAY;

because they have different qualification and that causes an unexpected linker
error. I am going to fix the test to use either D1-D2 or D1-D3 block
declarations, because I think that the combination of D1, D2, D3 is responsible
for the failure.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>