[Bug 92743] Centroid shouldn't have to match between the FS and the VS

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Nov 6 04:44:32 PST 2015


https://bugs.freedesktop.org/show_bug.cgi?id=92743

--- Comment #8 from Tapani Pälli <lemody at gmail.com> ---
(In reply to Corentin Wallez from comment #5)
> 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 https://bugs.freedesktop.org/show_bug.cgi?id=92743
> 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 https://cvs.khronos.org/bugzilla/show_bug.cgi?id=7819 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.

GLSL 440 spec removed the contradictory statement:

"Bug 10990: 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.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20151106/8b42ce5d/attachment-0001.html>


More information about the intel-3d-bugs mailing list