<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Unreal engine demos segfault after shader compilation error with OpenGL 4.3"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=95005#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Unreal engine demos segfault after shader compilation error with OpenGL 4.3"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=95005">bug 95005</a>
              from <span class="vcard"><a class="email" href="mailto:idr@freedesktop.org" title="Ian Romanick <idr@freedesktop.org>"> <span class="fn">Ian Romanick</span></a>
</span></b>
        <pre>Hmm... I think the shader may be correct.  Section 4.1.8 (Structures) of the
GLSL 1.40 and later specs say (emphasis mine):

    "...where name becomes the user-defined type, and can be used to declare
    variables to be of this new type. The name shares the same name space as
    other variables, types, and functions. *All previously visible variables,
    types, constructors, or functions with that name are hidden.*"

Based on this, the second TEXCOORD0 should "shadow" the first.

It's worth noting that the GLSL 1.30 spec says:

    "...where name becomes the user-defined type, and can be used to declare
    variables to be of this new type. The name shares the same name space as
    other variables, types, and functions, with the same scoping rules."

I have no recollection why this change was made.  I could find nothing in the
1.40 spec to explain the change.  I believe Mesa implements the GLSL 1.30 rule
in all GLSL versions.

Curiously, all versions of GLSL ES contain the GLSL 1.40 language.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>