[Piglit] [PATCH 2/2] glsl-1.50: Add copiler tests to verify gl_FragCoord layout qualifiers

Anuj Phogat anuj.phogat at gmail.com
Tue Feb 11 11:07:52 PST 2014


On Mon, Feb 10, 2014 at 6:42 PM, Ian Romanick <idr at freedesktop.org> 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 <anuj.phogat at gmail.com>
> > ---
> >  .../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;
> > +}
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20140211/3d90cd84/attachment-0001.html>


More information about the Piglit mailing list