<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 10, 2014 at 6:42 PM, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think you mean "compiler" in the subject. :)<br></blockquote><div>yeah. "copiler" is still too futuristic :) </div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class=""><br>
On 02/10/2014 06:15 PM, Anuj Phogat wrote:<br>
> Signed-off-by: Anuj Phogat <<a href="mailto:anuj.phogat@gmail.com">anuj.phogat@gmail.com</a>><br>
> ---<br>
>  .../layout-qualifiers-conflicting-case-1.frag      | 37 ++++++++++++++++++++++<br>
>  .../layout-qualifiers-conflicting-case-2.frag      | 37 ++++++++++++++++++++++<br>
>  .../layout-qualifiers-matching.frag                | 37 ++++++++++++++++++++++<br>
>  3 files changed, 111 insertions(+)<br>
>  create mode 100644 tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-1.frag<br>
>  create mode 100644 tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-2.frag<br>
>  create mode 100644 tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-matching.frag<br>
><br>
> 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<br>


> new file mode 100644<br>
> index 0000000..d574e4f<br>
> --- /dev/null<br>
> +++ b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-1.frag<br>
> @@ -0,0 +1,37 @@<br>
> +/* [config]<br>
> + * expect_result: fail<br>
> + * glsl_version: 1.50<br>
> + * check_link: false<br>
> + * [end config]<br>
> + */<br>
> +<br>
<br>
</div>I would just combine these comments.<br></blockquote><div>ok </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class=""><br>
> +/* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:<br>
> + *<br>
> + *     "Fragment shaders can have an input layout only for redeclaring the<br>
> + *     built-in variable gl_FragCoord (see section 7.2 Fragment Shader<br>
> + *     Special Variables). The layout qualifier identifiers for<br>
> + *     gl_FragCoord are<br>
> + *<br>
> + *     layout-qualifier-id:<br>
> + *         origin_upper_left<br>
> + *         pixel_center_integer"<br>
> + *<br>
> + *     "If gl_FragCoord is redeclared in any fragment shader in a program,<br>
> + *      it must be redeclared in all the fragment shaders in that program<br>
> + *      that have a static use gl_FragCoord. All redeclarations of<br>
> + *      gl_FragCoord in all fragment shaders in a single program must have<br>
> + *      the same set of qualifiers."<br>
<br>
</div>Do later versions of the spec give any guidance about when these errors<br>
should be generated?  Somewhere in the 4.x series we started being<br>
specific.  Before that, it was ambiguous.  Some implementations<br>
generated the error at compile time, while others generated the error at<br>
link time.<br></blockquote><div>No additional details in later versions of spec. They all use same text which</div><div>I quoted in above comment. It looks more sensible to generate compile error</div><div>for these tests. Do you want me to find out what NVIDIA and AMD does?</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
> + *<br>
> + * Tests the conflicting redeclarations of gl_FragCoord within same fragment<br>
> + * shader.<br>
> + */<br>
> +<br>
> +#version 150<br>
> +<br>
> +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;<br>
> +layout(origin_upper_left) in vec4 gl_FragCoord;<br>
> +<br>
> +void main()<br>
> +{<br>
> +     gl_FragColor = gl_FragCoord.xyzz;<br>
> +}<br>
> 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<br>


> new file mode 100644<br>
> index 0000000..eb8976c<br>
> --- /dev/null<br>
> +++ b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-conflicting-case-2.frag<br>
> @@ -0,0 +1,37 @@<br>
> +/* [config]<br>
> + * expect_result: fail<br>
> + * glsl_version: 1.50<br>
> + * check_link: false<br>
> + * [end config]<br>
> + */<br>
> +<br>
> +/* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:<br>
> + *<br>
> + *     "Fragment shaders can have an input layout only for redeclaring the<br>
> + *     built-in variable gl_FragCoord (see section 7.2 Fragment Shader<br>
> + *     Special Variables). The layout qualifier identifiers for<br>
> + *     gl_FragCoord are<br>
> + *<br>
> + *     layout-qualifier-id:<br>
> + *         origin_upper_left<br>
> + *         pixel_center_integer"<br>
> + *<br>
> + *     "If gl_FragCoord is redeclared in any fragment shader in a program,<br>
> + *      it must be redeclared in all the fragment shaders in that program<br>
> + *      that have a static use gl_FragCoord. All redeclarations of<br>
> + *      gl_FragCoord in all fragment shaders in a single program must have<br>
> + *      the same set of qualifiers."<br>
> + *<br>
> + * Tests the conflicting redeclarations in a fragment shader cause the compile<br>
> + * failure even if gl_FragCoord is not used.<br>
> + */<br>
> +<br>
> +#version 150<br>
> +<br>
> +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;<br>
> +layout(origin_upper_left) in vec4 gl_FragCoord;<br>
> +<br>
> +void main()<br>
> +{<br>
> +     gl_FragColor = vec4(1.0);<br>
> +}<br>
> 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<br>
> new file mode 100644<br>
> index 0000000..63942cc<br>
> --- /dev/null<br>
> +++ b/tests/spec/glsl-1.50/compiler/fragment_coord_conventions/layout-qualifiers-matching.frag<br>
> @@ -0,0 +1,37 @@<br>
> +/* [config]<br>
> + * expect_result: pass<br>
> + * glsl_version: 1.50<br>
> + * check_link: false<br>
> + * [end config]<br>
> + */<br>
> +<br>
> +/* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:<br>
> + *<br>
> + *     "Fragment shaders can have an input layout only for redeclaring the<br>
> + *     built-in variable gl_FragCoord (see section 7.2 Fragment Shader<br>
> + *     Special Variables). The layout qualifier identifiers for<br>
> + *     gl_FragCoord are<br>
> + *<br>
> + *     layout-qualifier-id:<br>
> + *         origin_upper_left<br>
> + *         pixel_center_integer"<br>
> + *<br>
> + *     "If gl_FragCoord is redeclared in any fragment shader in a program,<br>
> + *      it must be redeclared in all the fragment shaders in that program<br>
> + *      that have a static use gl_FragCoord. All redeclarations of<br>
> + *      gl_FragCoord in all fragment shaders in a single program must have<br>
> + *      the same set of qualifiers."<br>
> + *<br>
> + * Tests the matching redeclarations of gl_FragCoord within same fragment<br>
> + * shader.<br>
> + */<br>
> +<br>
> +#version 150<br>
> +<br>
> +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;<br>
> +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;<br>
> +<br>
> +void main()<br>
> +{<br>
> +     gl_FragColor = gl_FragCoord.xyzz;<br>
> +}<br>
><br>
<br>
</div></div></blockquote></div><br></div></div>