[Bug 111591] [radeonsi/Navi] The Bard's Tale IV causes a GPU hang

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Sep 11 17:44:14 UTC 2019


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

--- Comment #16 from vggl <vgglvyww36 at khasekhemwy.net> ---

"The games shaders use GLSL 4.30 which mean interpolation qualifiers must match
across shader interfaces otherwise it is a link-time error. In GLSL 4.40 this
restriction was relaxed."

I believe that relaxation came in version 4.30, not 4.40.

The 4.30 spec here:
https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.30.pdf

>From the "4.3.4 Input Variables" section:

"The fragment shader inputs form an interface with the last active shader in
the vertex processing pipeline. For this interface, the last active shader
stage output variables and fragment shader input variables of the same name
must match in type and qualification, with a few exceptions: The storage
qualifiers must, of course, differ (one is in and one is out). Also,
interpolation qualification (e.g., flat) and auxiliary qualification (e.g.
centroid) may differ. These mismatches are allowed between any pair of stages.
When interpolation or auxiliary qualifiers do not match, those provided in the
fragment shader supersede those provided in previous stages. If any such
qualifiers are completely missing in the fragment shaders, then the default is
used, rather than any qualifiers that may have been declared in previous
stages. That is, what matters is what is declared in the fragment shaders, not
what is declared in shaders in previous stages."

That language is identical between 4.30 and 4.40. It sounds like it explicitly
allows interpolation qualifiers to differ.  However the 4.20 spec language in
that section was quite different and did require an interpolation qualifier
match.

Also, from
https://www.khronos.org/opengl/wiki/Shader_Compilation#Interface_matching:

"If GLSL 4.30 or later is available, then the interpolation qualifiers
(including centroid and sample) do not need to match."

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190911/a54936eb/attachment-0001.html>


More information about the dri-devel mailing list