<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>