On Mon, Feb 10, 2014 at 6:42 PM, Ian Romanick <[email protected]> wrote:
> I think you mean "compiler" in the subject. :) > yeah. "copiler" is still too futuristic :) > > On 02/10/2014 06:15 PM, Anuj Phogat wrote: > > Signed-off-by: Anuj Phogat <[email protected]> > > --- > > .../layout-qualifiers-conflicting-case-1.frag | 37 > ++++++++++++++++++++++ > > .../layout-qualifiers-conflicting-case-2.frag | 37 > ++++++++++++++++++++++ > > .../layout-qualifiers-matching.frag | 37 > ++++++++++++++++++++++ > > 3 files changed, 111 insertions(+) > > create mode 100644 > tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-1.frag > > create mode 100644 > tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-2.frag > > create mode 100644 > tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-matching.frag > > > > diff --git > a/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-1.frag > b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-1.frag > > new file mode 100644 > > index 0000000..d574e4f > > --- /dev/null > > +++ > b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-1.frag > > @@ -0,0 +1,37 @@ > > +/* [config] > > + * expect_result: fail > > + * glsl_version: 1.50 > > + * check_link: false > > + * [end config] > > + */ > > + > > I would just combine these comments. > ok > > > +/* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says: > > + * > > + * "Fragment shaders can have an input layout only for redeclaring > the > > + * built-in variable gl_FragCoord (see section 7.2 Fragment Shader > > + * Special Variables). The layout qualifier identifiers for > > + * gl_FragCoord are > > + * > > + * layout-qualifier-id: > > + * origin_upper_left > > + * pixel_center_integer" > > + * > > + * "If gl_FragCoord is redeclared in any fragment shader in a > program, > > + * it must be redeclared in all the fragment shaders in that > program > > + * that have a static use gl_FragCoord. All redeclarations of > > + * gl_FragCoord in all fragment shaders in a single program must > have > > + * the same set of qualifiers." > > Do later versions of the spec give any guidance about when these errors > should be generated? Somewhere in the 4.x series we started being > specific. Before that, it was ambiguous. Some implementations > generated the error at compile time, while others generated the error at > link time. > No additional details in later versions of spec. They all use same text which I quoted in above comment. It looks more sensible to generate compile error for these tests. Do you want me to find out what NVIDIA and AMD does? > > + * > > + * Tests the conflicting redeclarations of gl_FragCoord within same > fragment > > + * shader. > > + */ > > + > > +#version 150 > > + > > +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; > > +layout(origin_upper_left) in vec4 gl_FragCoord; > > + > > +void main() > > +{ > > + gl_FragColor = gl_FragCoord.xyzz; > > +} > > diff --git > a/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-2.frag > b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-2.frag > > new file mode 100644 > > index 0000000..eb8976c > > --- /dev/null > > +++ > b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-2.frag > > @@ -0,0 +1,37 @@ > > +/* [config] > > + * expect_result: fail > > + * glsl_version: 1.50 > > + * check_link: false > > + * [end config] > > + */ > > + > > +/* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says: > > + * > > + * "Fragment shaders can have an input layout only for redeclaring > the > > + * built-in variable gl_FragCoord (see section 7.2 Fragment Shader > > + * Special Variables). The layout qualifier identifiers for > > + * gl_FragCoord are > > + * > > + * layout-qualifier-id: > > + * origin_upper_left > > + * pixel_center_integer" > > + * > > + * "If gl_FragCoord is redeclared in any fragment shader in a > program, > > + * it must be redeclared in all the fragment shaders in that > program > > + * that have a static use gl_FragCoord. All redeclarations of > > + * gl_FragCoord in all fragment shaders in a single program must > have > > + * the same set of qualifiers." > > + * > > + * Tests the conflicting redeclarations in a fragment shader cause the > compile > > + * failure even if gl_FragCoord is not used. > > + */ > > + > > +#version 150 > > + > > +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; > > +layout(origin_upper_left) in vec4 gl_FragCoord; > > + > > +void main() > > +{ > > + gl_FragColor = vec4(1.0); > > +} > > diff --git > a/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-matching.frag > b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-matching.frag > > new file mode 100644 > > index 0000000..63942cc > > --- /dev/null > > +++ > b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-matching.frag > > @@ -0,0 +1,37 @@ > > +/* [config] > > + * expect_result: pass > > + * glsl_version: 1.50 > > + * check_link: false > > + * [end config] > > + */ > > + > > +/* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says: > > + * > > + * "Fragment shaders can have an input layout only for redeclaring > the > > + * built-in variable gl_FragCoord (see section 7.2 Fragment Shader > > + * Special Variables). The layout qualifier identifiers for > > + * gl_FragCoord are > > + * > > + * layout-qualifier-id: > > + * origin_upper_left > > + * pixel_center_integer" > > + * > > + * "If gl_FragCoord is redeclared in any fragment shader in a > program, > > + * it must be redeclared in all the fragment shaders in that > program > > + * that have a static use gl_FragCoord. All redeclarations of > > + * gl_FragCoord in all fragment shaders in a single program must > have > > + * the same set of qualifiers." > > + * > > + * Tests the matching redeclarations of gl_FragCoord within same > fragment > > + * shader. > > + */ > > + > > +#version 150 > > + > > +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; > > +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; > > + > > +void main() > > +{ > > + gl_FragColor = gl_FragCoord.xyzz; > > +} > > > >
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
