<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Centroid shouldn't have to match between the FS and the VS"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92743#c8">Comment # 8</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Centroid shouldn't have to match between the FS and the VS"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92743">bug 92743</a>
              from <span class="vcard"><a class="email" href="mailto:lemody@gmail.com" title="Tapani Pälli <lemody@gmail.com>"> <span class="fn">Tapani Pälli</span></a>
</span></b>
        <pre>(In reply to Corentin Wallez from <a href="show_bug.cgi?id=92743#c5">comment #5</a>)
<span class="quote">> Here is a copy-paste of a bug I filed against dEQP that explains the
> situation. I'm not sure what the right step forward is yet, we might have to
> file a Khronos bug to have a resolution. In the meantime the centroid-only
> patch seems safe to merge, but not the other one.

> The GLES3.functional.shaders.linkage.varying.rules.differing_interpolation_2
> test tests that these two varyings correctly link together.
>  - smooth out mediump float var;
>  - centroid in mediump float var;
> The differences between the variables is two-fold, no-centroid vs. centroid
> and smooth interpolation vs. default interpolation. The spec says that
> centroid and no-centroid is ok, see longer explanation in the first comment
> of <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Centroid shouldn't have to match between the FS and the VS"
   href="show_bug.cgi?id=92743">https://bugs.freedesktop.org/show_bug.cgi?id=92743</a>
> However the spec unclear on the smooth vs. default being allowed. The GLSL
> ES 3.0.4 and GLSL 330 spec say in the interpolation section that:
>     The type and presence of the interpolation qualifiers and storage
> qualifiers and invariant qualifiers of variables with the same name declared
> in all linked shaders must match, otherwise the link command will fail. (end
> of section 4.3.9 of the GLSL ES 3.0.4 spec)
> Which seems to indicate that default vs. smooth is not valid since default
> is the absence of qualifier.

> However in bug <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=7819">https://cvs.khronos.org/bugzilla/show_bug.cgi?id=7819</a> a block
> of text was added to the spec starting from GLSL 430 stating that the
> interpolation qualifiers do not have to link, and that the fragment shader's
> one is the one that gets used. So starting from that point on, the spec
> contradicts itself.

> Now the question is whether the edit to GLSL 430 spec shows what the intent
> was all along, in which case we should ignore all the previous spec text on
> the presence having to match. Or it is something that should start to take
> effect only with the GLSL 430 spec onward in which case there is a spec bug
> for these versions.</span >

GLSL 440 spec removed the contradictory statement:

"<a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [R300] low impact fallbacks and blender"
   href="show_bug.cgi?id=10990">Bug 10990</a>: Remove old contradictory text requiring interpolation qualifiers to
match cross stage; they must only match within a stage." This is how Mesa works
currently, interpolation is checked against only if GLSL version is < 440.</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>