Ian, Thanks. I have logged this driver bug.

Wen

-----Original Message-----
From: Ian Romanick [mailto:i...@freedesktop.org] 
Sent: Friday, October 04, 2013 09:06 AM
To: Wen Su
Cc: piglit@lists.freedesktop.org; Paul Berry; Piers Daniell
Subject: Re: [PATCH] sso: Add compile tests for the location layout qualifier

On 10/03/2013 04:33 PM, Wen Su wrote:
> Piers and I reviewed the glsl spec v1.3 and v1.4. The layout qualifier was 
> not added until v1.4. See page 18 in the pdf below.
> http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.40.05.pdf

That is true.  It is also added by GL_ARB_fragment_coord_conventions,
GL_ARB_explicit_attrib_layout, and GL_ARB_separate_shader_objects.  Our
experiments have shown that the NVIDIA driver enables the layout keyword
only when GL_ARB_fragment_coord_conventions is enabled.

See also Khronos internal bug #6924.

> Wen
> 
> -----Original Message-----
> From: Ian Romanick [mailto:i...@freedesktop.org] 
> Sent: Wednesday, October 02, 2013 11:05 AM
> To: piglit@lists.freedesktop.org
> Cc: Ian Romanick; Wen Su; Paul Berry
> Subject: [PATCH] sso: Add compile tests for the location layout qualifier
> 
> From: Ian Romanick <ian.d.roman...@intel.com>
> 
> NVIDIA (304.64 on GTX 260) fails all of the 1.10, 1.20, and 1.30 tests
> because they fail to recognize the layout keyword at all.  Paul has
> suggested that adding
> 
>     #extension GL_ARB_fragment_coord_conventions: require
> 
> may work around this issue in some cases.
> 
> Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
> Cc: Wen Su <w...@nvidia.com>
> Cc: Paul Berry <stereotype...@gmail.com>
> ---
> Paul,
> 
> Are there other geometry shader tests that I should add?
> 
>  .../compiler/1.10/layout-location.frag             | 14 ++++++++++++++
>  .../compiler/1.10/layout-location.vert             | 15 +++++++++++++++
>  .../compiler/1.20/layout-location.frag             | 14 ++++++++++++++
>  .../compiler/1.20/layout-location.vert             | 15 +++++++++++++++
>  .../compiler/1.30/layout-location.frag             | 14 ++++++++++++++
>  .../compiler/1.30/layout-location.vert             | 15 +++++++++++++++
>  .../compiler/1.40/layout-location.frag             | 15 +++++++++++++++
>  .../compiler/1.40/layout-location.vert             | 16 ++++++++++++++++
>  .../compiler/1.50/layout-location.frag             | 15 +++++++++++++++
>  .../compiler/1.50/layout-location.geom             | 22 
> ++++++++++++++++++++++
>  .../compiler/1.50/layout-location.vert             | 16 ++++++++++++++++
>  11 files changed, 171 insertions(+)
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.frag
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.vert
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.frag
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.vert
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.frag
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.vert
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.frag
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.vert
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.frag
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.geom
>  create mode 100644 
> tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.vert
> 
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.frag 
> b/tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.frag
> new file mode 100644
> index 0000000..b91faa1
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.frag
> @@ -0,0 +1,14 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.10
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 110
> +#extension GL_ARB_separate_shader_objects: require
> +
> +layout(location = 0) in vec4 a;
> +
> +void main()
> +{
> +    gl_FragColor = a;
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.vert 
> b/tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.vert
> new file mode 100644
> index 0000000..ecc8e78
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.10/layout-location.vert
> @@ -0,0 +1,15 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.10
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 110
> +#extension GL_ARB_separate_shader_objects: require
> +
> +layout(location = 0) out vec4 a;
> +
> +void main()
> +{
> +    gl_Position = gl_Vertex;
> +    a = vec4(0);
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.frag 
> b/tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.frag
> new file mode 100644
> index 0000000..0090a9f
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.frag
> @@ -0,0 +1,14 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.20
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 120
> +#extension GL_ARB_separate_shader_objects: require
> +
> +layout(location = 0) in vec4 a;
> +
> +void main()
> +{
> +    gl_FragColor = a;
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.vert 
> b/tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.vert
> new file mode 100644
> index 0000000..d432b81
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.20/layout-location.vert
> @@ -0,0 +1,15 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.20
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 120
> +#extension GL_ARB_separate_shader_objects: require
> +
> +layout(location = 0) out vec4 a;
> +
> +void main()
> +{
> +    gl_Position = gl_Vertex;
> +    a = vec4(0);
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.frag 
> b/tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.frag
> new file mode 100644
> index 0000000..a0dde35
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.frag
> @@ -0,0 +1,14 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.30
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 130
> +#extension GL_ARB_separate_shader_objects: require
> +
> +layout(location = 0) in vec4 a;
> +
> +void main()
> +{
> +    gl_FragColor = a;
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.vert 
> b/tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.vert
> new file mode 100644
> index 0000000..104dc71
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.30/layout-location.vert
> @@ -0,0 +1,15 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.30
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 130
> +#extension GL_ARB_separate_shader_objects: require
> +
> +layout(location = 0) out vec4 a;
> +
> +void main()
> +{
> +    gl_Position = gl_Vertex;
> +    a = vec4(0);
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.frag 
> b/tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.frag
> new file mode 100644
> index 0000000..683892d
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.frag
> @@ -0,0 +1,15 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.40
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 140
> +#extension GL_ARB_separate_shader_objects: require
> +
> +out vec4 fragcolor;
> +layout(location = 0) in vec4 a;
> +
> +void main()
> +{
> +    fragcolor = a;
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.vert 
> b/tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.vert
> new file mode 100644
> index 0000000..8c55c4a
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.40/layout-location.vert
> @@ -0,0 +1,16 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.40
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 140
> +#extension GL_ARB_separate_shader_objects: require
> +
> +in vec4 piglit_vertex;
> +layout(location = 0) out vec4 a;
> +
> +void main()
> +{
> +    gl_Position = piglit_vertex;
> +    a = vec4(0);
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.frag 
> b/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.frag
> new file mode 100644
> index 0000000..63fafe7
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.frag
> @@ -0,0 +1,15 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.50
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 150
> +#extension GL_ARB_separate_shader_objects: require
> +
> +out vec4 fragcolor;
> +layout(location = 0) in vec4 a;
> +
> +void main()
> +{
> +    fragcolor = a;
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.geom 
> b/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.geom
> new file mode 100644
> index 0000000..f34cf2e
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.geom
> @@ -0,0 +1,22 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.50
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 150
> +#extension GL_ARB_separate_shader_objects: require
> +
> +layout(points) in;
> +layout(points) out;
> +
> +layout(location = 0) in vec4 in_position;
> +
> +layout(location = 0) out vec4 position;
> +layout(location = 1) out vec4 color;
> +
> +void main()
> +{
> +    position = in_position;
> +    color = vec4(0);
> +    EmitVertex();
> +}
> diff --git 
> a/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.vert 
> b/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.vert
> new file mode 100644
> index 0000000..9885718
> --- /dev/null
> +++ 
> b/tests/spec/arb_separate_shader_objects/compiler/1.50/layout-location.vert
> @@ -0,0 +1,16 @@
> +// [config]
> +// expect_result: pass
> +// glsl_version: 1.50
> +// require_extensions: GL_ARB_separate_shader_objects
> +// [end config]
> +#version 150
> +#extension GL_ARB_separate_shader_objects: require
> +
> +in vec4 piglit_vertex;
> +layout(location = 0) out vec4 a;
> +
> +void main()
> +{
> +    gl_Position = piglit_vertex;
> +    a = vec4(0);
> +}
> 

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may 
contain
confidential information.  Any unauthorized review, use, disclosure or 
distribution
is prohibited.  If you are not the intended recipient, please contact the 
sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to