[Piglit] [PATCH RESEND 0/3] glslparsertest: ES fixes

2013-02-27 Thread Paul Berry
These patches seem to have fallen through the cracks last time I sent
them (2/14).  I'd appreciate some review.  Without these patches,
glslparsertest_gles2 doesn't work at all, since it parses the GLSL
version string incorrectly, refers to uninitialized data, and checks
for incorrect extensions.

[PATCH RESEND 1/3] glslparsertest: Fix parsing of GL_SHADING_LANGUAGE_VERSION 
in GLES.
[PATCH RESEND 2/3] glslparsertest: Don't require ES compatibility extensions 
when testing GLES.
[PATCH RESEND 3/3] glslparsertest: Avoid uninitialized vars in 
parse_glsl_version_number.
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH RESEND 2/3] glslparsertest: Don't require ES compatibility extensions when testing GLES.

2013-02-27 Thread Paul Berry
glslparsertest should only check for the presence of
GL_ARB_ES{2,3}_compatibility when the test is running under desktop
GL.  GLES never exposes these extensions.
---
 tests/glslparsertest/glslparsertest.c | 36 ---
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/tests/glslparsertest/glslparsertest.c 
b/tests/glslparsertest/glslparsertest.c
index 26a558f..43bef03 100644
--- a/tests/glslparsertest/glslparsertest.c
+++ b/tests/glslparsertest/glslparsertest.c
@@ -366,6 +366,30 @@ parse_glsl_version_string(const char *str)
return parse_glsl_version_number(str);
 }
 
+
+static void
+check_version(unsigned glsl_version)
+{
+#ifdef PIGLIT_USE_OPENGL
+   if (requested_version == 100) {
+   piglit_require_extension(GL_ARB_ES2_compatibility);
+   return;
+   } else if (requested_version == 300) {
+   piglit_require_extension(GL_ARB_ES3_compatibility);
+   return;
+   }
+#endif
+
+   if (glsl_version  requested_version) {
+   fprintf(stderr,
+   GLSL version is %u.%u, but requested version %u.%u is 
required\n,
+   glsl_version / 100, glsl_version % 100,
+   requested_version / 100, requested_version % 100);
+   piglit_report_result(PIGLIT_SKIP);
+   }
+}
+
+
 void
 piglit_init(int argc, char**argv)
 {
@@ -406,17 +430,7 @@ piglit_init(int argc, char**argv)
if (glsl_version_string != NULL)
glsl_version = parse_glsl_version_string(glsl_version_string);
 
-   if (requested_version == 100) {
-   piglit_require_extension(GL_ARB_ES2_compatibility);
-   } else if (requested_version == 300) {
-   piglit_require_extension(GL_ARB_ES3_compatibility);
-   } else if (glsl_version  requested_version) {
-   fprintf(stderr,
-   GLSL version is %u.%u, but requested version %u.%u is 
required\n,
-   glsl_version / 100, glsl_version % 100,
-   requested_version / 100, requested_version % 100);
-   piglit_report_result(PIGLIT_SKIP);
-   }
+   check_version(glsl_version);
 
for (i = 4; i  argc; i++) {
if (argv[i][0] == '!') {
-- 
1.8.1.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH RESEND 3/3] glslparsertest: Avoid uninitialized vars in parse_glsl_version_number.

2013-02-27 Thread Paul Berry
Previously, if the user specified an ill-formed GLSL version number
(or the implementation supplied an ill-formed number in its response
to glGetString(GL_SHADING_LANGUAGE_VERSION)), glslparsertest would
access uninitialized variables, resulting in unpredictable (and often
confusing) behaviour.

With this patch, glslparser test accepts version numbers either of the
form int or int.int.  Ill-formed version numbers lead to a
test failure.
---
 tests/glslparsertest/glslparsertest.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/tests/glslparsertest/glslparsertest.c 
b/tests/glslparsertest/glslparsertest.c
index 43bef03..c9696be 100644
--- a/tests/glslparsertest/glslparsertest.c
+++ b/tests/glslparsertest/glslparsertest.c
@@ -339,10 +339,14 @@ int process_options(int argc, char **argv)
 static unsigned
 parse_glsl_version_number(const char *str)
 {
-   unsigned major;
-   unsigned minor;
+   unsigned major = 0;
+   unsigned minor = 0;
+
+   if (sscanf(str, %u.%u, major, minor) == 0) {
+   printf(Ill-formed GLSL version number: %s\n, str);
+   piglit_report_result(PIGLIT_FAIL);
+   }
 
-   sscanf(str, %u.%u, major, minor);
return (major * 100) + minor;
 }
 
-- 
1.8.1.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] [PATCH RESEND 3/3] glslparsertest: Avoid uninitialized vars in parse_glsl_version_number.

2013-02-27 Thread Eric Anholt
Paul Berry stereotype...@gmail.com writes:

 Previously, if the user specified an ill-formed GLSL version number
 (or the implementation supplied an ill-formed number in its response
 to glGetString(GL_SHADING_LANGUAGE_VERSION)), glslparsertest would
 access uninitialized variables, resulting in unpredictable (and often
 confusing) behaviour.

 With this patch, glslparser test accepts version numbers either of the
 form int or int.int.  Ill-formed version numbers lead to a
 test failure.
 ---
  tests/glslparsertest/glslparsertest.c | 10 +++---
  1 file changed, 7 insertions(+), 3 deletions(-)

 diff --git a/tests/glslparsertest/glslparsertest.c 
 b/tests/glslparsertest/glslparsertest.c
 index 43bef03..c9696be 100644
 --- a/tests/glslparsertest/glslparsertest.c
 +++ b/tests/glslparsertest/glslparsertest.c
 @@ -339,10 +339,14 @@ int process_options(int argc, char **argv)
  static unsigned
  parse_glsl_version_number(const char *str)
  {
 - unsigned major;
 - unsigned minor;
 + unsigned major = 0;
 + unsigned minor = 0;
 +
 + if (sscanf(str, %u.%u, major, minor) == 0) {
 + printf(Ill-formed GLSL version number: %s\n, str);
 + piglit_report_result(PIGLIT_FAIL);
 + }

For full pedantry, I think that would be sscanf(...) != 2.

Regardless, the series is:

Reviewed-by: Eric Anholt e...@anholt.net


pgpNu9SldCWqK.pgp
Description: PGP signature
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] [PATCH RESEND 2/3] glslparsertest: Don't require ES compatibility extensions when testing GLES.

2013-02-27 Thread Tom Gall
Hmm is there some reason this has to be a compile time decision as
compared to use of the piglit_is_gles() function?

Here's a link to the patch that I had posted on the 18th.

http://lists.freedesktop.org/archives/piglit/2013-February/004952.html



On Wed, Feb 27, 2013 at 12:32 PM, Paul Berry stereotype...@gmail.com wrote:
 glslparsertest should only check for the presence of
 GL_ARB_ES{2,3}_compatibility when the test is running under desktop
 GL.  GLES never exposes these extensions.
 ---
  tests/glslparsertest/glslparsertest.c | 36 
 ---
  1 file changed, 25 insertions(+), 11 deletions(-)

 diff --git a/tests/glslparsertest/glslparsertest.c 
 b/tests/glslparsertest/glslparsertest.c
 index 26a558f..43bef03 100644
 --- a/tests/glslparsertest/glslparsertest.c
 +++ b/tests/glslparsertest/glslparsertest.c
 @@ -366,6 +366,30 @@ parse_glsl_version_string(const char *str)
 return parse_glsl_version_number(str);
  }

 +
 +static void
 +check_version(unsigned glsl_version)
 +{
 +#ifdef PIGLIT_USE_OPENGL
 +   if (requested_version == 100) {
 +   piglit_require_extension(GL_ARB_ES2_compatibility);
 +   return;
 +   } else if (requested_version == 300) {
 +   piglit_require_extension(GL_ARB_ES3_compatibility);
 +   return;
 +   }
 +#endif
 +
 +   if (glsl_version  requested_version) {
 +   fprintf(stderr,
 +   GLSL version is %u.%u, but requested version %u.%u 
 is required\n,
 +   glsl_version / 100, glsl_version % 100,
 +   requested_version / 100, requested_version % 100);
 +   piglit_report_result(PIGLIT_SKIP);
 +   }
 +}
 +
 +
  void
  piglit_init(int argc, char**argv)
  {
 @@ -406,17 +430,7 @@ piglit_init(int argc, char**argv)
 if (glsl_version_string != NULL)
 glsl_version = parse_glsl_version_string(glsl_version_string);

 -   if (requested_version == 100) {
 -   piglit_require_extension(GL_ARB_ES2_compatibility);
 -   } else if (requested_version == 300) {
 -   piglit_require_extension(GL_ARB_ES3_compatibility);
 -   } else if (glsl_version  requested_version) {
 -   fprintf(stderr,
 -   GLSL version is %u.%u, but requested version %u.%u 
 is required\n,
 -   glsl_version / 100, glsl_version % 100,
 -   requested_version / 100, requested_version % 100);
 -   piglit_report_result(PIGLIT_SKIP);
 -   }
 +   check_version(glsl_version);

 for (i = 4; i  argc; i++) {
 if (argv[i][0] == '!') {
 --
 1.8.1.4

 ___
 Piglit mailing list
 Piglit@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/piglit



--
Regards,
Tom

Where's the kaboom!? There was supposed to be an earth-shattering
kaboom! Marvin Martian
Tech Lead, Graphics Working Group | Linaro.org │ Open source software
for ARM SoCs
w) tom.gall att linaro.org
h) tom_gall att mac.com
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] [PATCH RESEND 3/3] glslparsertest: Avoid uninitialized vars in parse_glsl_version_number.

2013-02-27 Thread Paul Berry
On 27 February 2013 10:44, Eric Anholt e...@anholt.net wrote:

 Paul Berry stereotype...@gmail.com writes:

  Previously, if the user specified an ill-formed GLSL version number
  (or the implementation supplied an ill-formed number in its response
  to glGetString(GL_SHADING_LANGUAGE_VERSION)), glslparsertest would
  access uninitialized variables, resulting in unpredictable (and often
  confusing) behaviour.
 
  With this patch, glslparser test accepts version numbers either of the
  form int or int.int.  Ill-formed version numbers lead to a
  test failure.
  ---
   tests/glslparsertest/glslparsertest.c | 10 +++---
   1 file changed, 7 insertions(+), 3 deletions(-)
 
  diff --git a/tests/glslparsertest/glslparsertest.c
 b/tests/glslparsertest/glslparsertest.c
  index 43bef03..c9696be 100644
  --- a/tests/glslparsertest/glslparsertest.c
  +++ b/tests/glslparsertest/glslparsertest.c
  @@ -339,10 +339,14 @@ int process_options(int argc, char **argv)
   static unsigned
   parse_glsl_version_number(const char *str)
   {
  - unsigned major;
  - unsigned minor;
  + unsigned major = 0;
  + unsigned minor = 0;
  +
  + if (sscanf(str, %u.%u, major, minor) == 0) {
  + printf(Ill-formed GLSL version number: %s\n, str);
  + piglit_report_result(PIGLIT_FAIL);
  + }

 For full pedantry, I think that would be sscanf(...) != 2.


Actually, sscanf(...) == 0 allows the version number to be supplied as
either int or int.int.



 Regardless, the series is:

 Reviewed-by: Eric Anholt e...@anholt.net


Thanks!
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] [PATCH 3/3] depthstencil-render-miplevels: Present the results in non-auto mode.

2013-02-27 Thread Chad Versace
On 02/26/2013 12:39 PM, Eric Anholt wrote:
 I tried to make the presentation be the data that was originally
 probed -- there's a second readpixels that's unfortunately, but we do
^^
Is that's a typo?

 use separate textures so that any workaround relayouts of the probed
 textures don't get tweaked in the process of displaying.

This comment doesn't apply to all drivers, not even all Intel drivers,
so please qualify the comment.

 ---
  tests/texturing/depthstencil-render-miplevels.cpp |  105 
 -
  1 file changed, 102 insertions(+), 3 deletions(-)

I applied your series on top of master and tested it on Sandybridge with
`depthstencil-render-miplevels 1024 d=z24`. The window doesn't do the app
says: Colors should proceed  from nearly-black to nearly-red. Is that
expected?

With PIGLIT_PLATFORM=x11_egl, the window is a solid dark red. With 
PIGLIT_PLATFORM=glx,
the window content is garbage; it seems that swapbuffers doesn't happen (likely 
a bug
in Piglit).

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] [PATCH RESEND 3/3] glslparsertest: Avoid uninitialized vars in parse_glsl_version_number.

2013-02-27 Thread Chad Versace
On 02/27/2013 10:47 AM, Paul Berry wrote:
 On 27 February 2013 10:44, Eric Anholt e...@anholt.net
 mailto:e...@anholt.net wrote:
 
 Paul Berry stereotype...@gmail.com mailto:stereotype...@gmail.com 
 writes:
 
  Previously, if the user specified an ill-formed GLSL version number
  (or the implementation supplied an ill-formed number in its response
  to glGetString(GL_SHADING_LANGUAGE_VERSION)), glslparsertest would
  access uninitialized variables, resulting in unpredictable (and often
  confusing) behaviour.
 
  With this patch, glslparser test accepts version numbers either of the
  form int or int.int.  Ill-formed version numbers lead to a
  test failure.
  ---
   tests/glslparsertest/glslparsertest.c | 10 +++---
   1 file changed, 7 insertions(+), 3 deletions(-)
 
  diff --git a/tests/glslparsertest/glslparsertest.c
 b/tests/glslparsertest/glslparsertest.c
  index 43bef03..c9696be 100644
  --- a/tests/glslparsertest/glslparsertest.c
  +++ b/tests/glslparsertest/glslparsertest.c
  @@ -339,10 +339,14 @@ int process_options(int argc, char **argv)
   static unsigned
   parse_glsl_version_number(const char *str)
   {
  - unsigned major;
  - unsigned minor;
  + unsigned major = 0;
  + unsigned minor = 0;
  +
  + if (sscanf(str, %u.%u, major, minor) == 0) {
  + printf(Ill-formed GLSL version number: %s\n, str);
  + piglit_report_result(PIGLIT_FAIL);
  + }
 
 For full pedantry, I think that would be sscanf(...) != 2.
 
 
 Actually, sscanf(...) == 0 allows the version number to be supplied as either
 int or int.int.

Please add a comment explaining that's why `== 0` is used. I saw your trick,
but it's not obvious.

With that, the series is:
Reviewed-by: Chad Versace chad.vers...@linux.intel.com

By the way, I do prefer Tom's suggestions to use runtime detection in
patches 1 and 2. That would be one less thing to clean up when we switch
to unified binaries. But, it doesn't really matter today.

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] [PATCH RESEND 2/3] glslparsertest: Don't require ES compatibility extensions when testing GLES.

2013-02-27 Thread Tom Gall
I don't have an objection, just thought I'd ask. If in the longer term
we have the goal to build just one test binary that can be applied
against different versions of GL, then we'll have to go back and get
rid of these compile time checks.

Regards,
Tom

On Wed, Feb 27, 2013 at 12:54 PM, Paul Berry stereotype...@gmail.com wrote:
 On 27 February 2013 10:46, Tom Gall tom.g...@linaro.org wrote:

 Hmm is there some reason this has to be a compile time decision as
 compared to use of the piglit_is_gles() function?


 No, I don't really see a reason to prefer one way over the other.



 Here's a link to the patch that I had posted on the 18th.

 http://lists.freedesktop.org/archives/piglit/2013-February/004952.html


 Wow, looks like we both failed to notice each other's patch :)

 It looks like your version only addresses GLES2, not GLES3.  Any objection
 to going forward with my version?  I have the series ready to push, and it's
 already received Eric's review.





 On Wed, Feb 27, 2013 at 12:32 PM, Paul Berry stereotype...@gmail.com
 wrote:
  glslparsertest should only check for the presence of
  GL_ARB_ES{2,3}_compatibility when the test is running under desktop
  GL.  GLES never exposes these extensions.
  ---
   tests/glslparsertest/glslparsertest.c | 36
  ---
   1 file changed, 25 insertions(+), 11 deletions(-)
 
  diff --git a/tests/glslparsertest/glslparsertest.c
  b/tests/glslparsertest/glslparsertest.c
  index 26a558f..43bef03 100644
  --- a/tests/glslparsertest/glslparsertest.c
  +++ b/tests/glslparsertest/glslparsertest.c
  @@ -366,6 +366,30 @@ parse_glsl_version_string(const char *str)
  return parse_glsl_version_number(str);
   }
 
  +
  +static void
  +check_version(unsigned glsl_version)
  +{
  +#ifdef PIGLIT_USE_OPENGL
  +   if (requested_version == 100) {
  +   piglit_require_extension(GL_ARB_ES2_compatibility);
  +   return;
  +   } else if (requested_version == 300) {
  +   piglit_require_extension(GL_ARB_ES3_compatibility);
  +   return;
  +   }
  +#endif
  +
  +   if (glsl_version  requested_version) {
  +   fprintf(stderr,
  +   GLSL version is %u.%u, but requested version
  %u.%u is required\n,
  +   glsl_version / 100, glsl_version % 100,
  +   requested_version / 100, requested_version %
  100);
  +   piglit_report_result(PIGLIT_SKIP);
  +   }
  +}
  +
  +
   void
   piglit_init(int argc, char**argv)
   {
  @@ -406,17 +430,7 @@ piglit_init(int argc, char**argv)
  if (glsl_version_string != NULL)
  glsl_version =
  parse_glsl_version_string(glsl_version_string);
 
  -   if (requested_version == 100) {
  -   piglit_require_extension(GL_ARB_ES2_compatibility);
  -   } else if (requested_version == 300) {
  -   piglit_require_extension(GL_ARB_ES3_compatibility);
  -   } else if (glsl_version  requested_version) {
  -   fprintf(stderr,
  -   GLSL version is %u.%u, but requested version
  %u.%u is required\n,
  -   glsl_version / 100, glsl_version % 100,
  -   requested_version / 100, requested_version %
  100);
  -   piglit_report_result(PIGLIT_SKIP);
  -   }
  +   check_version(glsl_version);
 
  for (i = 4; i  argc; i++) {
  if (argv[i][0] == '!') {
  --
  1.8.1.4
 
  ___
  Piglit mailing list
  Piglit@lists.freedesktop.org
  http://lists.freedesktop.org/mailman/listinfo/piglit



 --
 Regards,
 Tom

 Where's the kaboom!? There was supposed to be an earth-shattering
 kaboom! Marvin Martian
 Tech Lead, Graphics Working Group | Linaro.org │ Open source software
 for ARM SoCs
 w) tom.gall att linaro.org
 h) tom_gall att mac.com





--
Regards,
Tom

Where's the kaboom!? There was supposed to be an earth-shattering
kaboom! Marvin Martian
Tech Lead, Graphics Working Group | Linaro.org │ Open source software
for ARM SoCs
w) tom.gall att linaro.org
h) tom_gall att mac.com
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] RFC: variable-index-read.sh and write for GLES

2013-02-27 Thread Tom Gall
From tests/spec/glsl-1.10,  I've extended variable-index-write.sh and
variable-index-read.sh so the scripts are able to generate tests for
GLSL ES 1.00.

Posting the patches for the scripts is trivial but how do we want to
handle all the tests that it generates?

Seems like a bit of a waste of mailing list bandwidth to post the 326
resulting new files as patches that are output from the scripts.

Thoughts?

--
Regards,
Tom

Where's the kaboom!? There was supposed to be an earth-shattering
kaboom! Marvin Martian
Tech Lead, Graphics Working Group | Linaro.org │ Open source software
for ARM SoCs
w) tom.gall att linaro.org
h) tom_gall att mac.com
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH 1/6] glsl-1.50: add test for interface block member qualifier mismatch

2013-02-27 Thread Jordan Justen
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 ...interface-blocks-member-qualifier-mismatch.vert |   22 
 1 file changed, 22 insertions(+)
 create mode 100644 
tests/spec/glsl-1.50/compiler/interface-blocks-member-qualifier-mismatch.vert

diff --git 
a/tests/spec/glsl-1.50/compiler/interface-blocks-member-qualifier-mismatch.vert 
b/tests/spec/glsl-1.50/compiler/interface-blocks-member-qualifier-mismatch.vert
new file mode 100644
index 000..fead1d8
--- /dev/null
+++ 
b/tests/spec/glsl-1.50/compiler/interface-blocks-member-qualifier-mismatch.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.50
+// check_link: true
+// [end config]
+//
+// Tests that member qualifier matches the interface block type.
+//
+// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks:
+// Input variables, output variables, and uniform variables can only
+//  be in in blocks, out blocks, and uniform blocks, respectively.
+
+#version 150
+
+out block {
+uniform vec4 a; // illegal: uniform qualifier within out block
+} inst;
+
+void main()
+{
+}
+
-- 
1.7.10.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH 2/6] glsl-1.10: add uniform type mismatch link test

2013-02-27 Thread Jordan Justen
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 .../linker/uniform-type-mismatch.shader_test   |   29 
 1 file changed, 29 insertions(+)
 create mode 100644 
tests/spec/glsl-1.10/linker/uniform-type-mismatch.shader_test

diff --git a/tests/spec/glsl-1.10/linker/uniform-type-mismatch.shader_test 
b/tests/spec/glsl-1.10/linker/uniform-type-mismatch.shader_test
new file mode 100644
index 000..82f8a18
--- /dev/null
+++ b/tests/spec/glsl-1.10/linker/uniform-type-mismatch.shader_test
@@ -0,0 +1,29 @@
+# Tests that a link error occurs when an uniform's type
+# differs between the vertex and fragment shaders.
+#
+# GLSLangSpec.Full.1.10.59, 4.3.5 Uniform:
+# If multiple shaders are linked together, then they will
+#  share a single global uniform name space. Hence, types
+#  of uniforms with the same name must match across all
+#  shaders that are linked into a single executable.
+[require]
+GLSL = 1.10
+
+[vertex shader]
+uniform vec4 a; // a is vec3 in FS
+
+void main()
+{
+gl_Position = vec4(0.0);
+}
+
+[fragment shader]
+uniform vec3 a; // a is vec4 in VS
+
+void main()
+{
+}
+
+[test]
+link error
+
-- 
1.7.10.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH 3/6] glsl-es-3.00: add uniform block type mismatch link test

2013-02-27 Thread Jordan Justen
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 ...terface-blocks-member-type-mismatch.shader_test |   39 
 1 file changed, 39 insertions(+)
 create mode 100644 
tests/spec/glsl-es-3.00/linker/interface-blocks-member-type-mismatch.shader_test

diff --git 
a/tests/spec/glsl-es-3.00/linker/interface-blocks-member-type-mismatch.shader_test
 
b/tests/spec/glsl-es-3.00/linker/interface-blocks-member-type-mismatch.shader_test
new file mode 100644
index 000..d586867
--- /dev/null
+++ 
b/tests/spec/glsl-es-3.00/linker/interface-blocks-member-type-mismatch.shader_test
@@ -0,0 +1,39 @@
+# Tests that a link error occurs when an interface block member's type
+# differs between the vertex and fragment shaders.
+#
+# GLSL_ES_Specification_3.00.3, 4.3.7 Interface Blocks:
+# Matched block names within an interface (as defined above) must match
+#  in terms of having the same number of declarations with the same
+#  sequence of types, precisions and the same sequence of member names,
+#  as well as having the same member-wise layout qualification (see next
+#  section).
+[require]
+GL ES = 3.0
+GLSL ES = 3.00
+
+[vertex shader]
+#version 300 es
+
+uniform block {
+   vec4 a; // a is vec3 in FS
+} inst_a;
+
+void main()
+{
+gl_Position = vec4(0.0);
+}
+
+[fragment shader]
+#version 300 es
+
+uniform block {
+   vec3 a; // a is vec4 in VS
+} inst_b;
+
+void main()
+{
+}
+
+[test]
+link error
+
-- 
1.7.10.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH 4/6] glsl-1.50: attribute keyword is not allowed within an interface block

2013-02-27 Thread Jordan Justen
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 .../compiler/interface-blocks-attribute-used.vert  |   22 
 1 file changed, 22 insertions(+)
 create mode 100644 
tests/spec/glsl-1.50/compiler/interface-blocks-attribute-used.vert

diff --git a/tests/spec/glsl-1.50/compiler/interface-blocks-attribute-used.vert 
b/tests/spec/glsl-1.50/compiler/interface-blocks-attribute-used.vert
new file mode 100644
index 000..dd25dac
--- /dev/null
+++ b/tests/spec/glsl-1.50/compiler/interface-blocks-attribute-used.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.50
+// check_link: true
+// [end config]
+//
+// Tests that the attribute qualifier is rejected in an interface block.
+//
+// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks:
+// Declarations using the deprecated attribute and varying qualifiers
+//  are not allowed.
+
+#version 150
+
+out block {
+attribute vec4 a; // illegal: can't use deprecated attribute keyword
+} inst;
+
+void main()
+{
+}
+
-- 
1.7.10.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH 5/6] glsl-1.50: varying keyword is not allowed within an interface block

2013-02-27 Thread Jordan Justen
Signed-off-by: Jordan Justen jordan.l.jus...@intel.com
---
 .../compiler/interface-blocks-varying-used.vert|   22 
 1 file changed, 22 insertions(+)
 create mode 100644 
tests/spec/glsl-1.50/compiler/interface-blocks-varying-used.vert

diff --git a/tests/spec/glsl-1.50/compiler/interface-blocks-varying-used.vert 
b/tests/spec/glsl-1.50/compiler/interface-blocks-varying-used.vert
new file mode 100644
index 000..c0a957b
--- /dev/null
+++ b/tests/spec/glsl-1.50/compiler/interface-blocks-varying-used.vert
@@ -0,0 +1,22 @@
+// [config]
+// expect_result: fail
+// glsl_version: 1.50
+// check_link: true
+// [end config]
+//
+// Tests that a varying qualifier is rejected in an interface block.
+//
+// GLSLangSpec.1.50.11, 4.3.7 Interface Blocks:
+// Declarations using the deprecated attribute and varying qualifiers
+//  are not allowed.
+
+#version 150
+
+out block {
+varying vec4 a; // illegal: can't use deprecated varying keyword
+} inst;
+
+void main()
+{
+}
+
-- 
1.7.10.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] RFC: variable-index-read.sh and write for GLES

2013-02-27 Thread Eric Anholt
Tom Gall tom.g...@linaro.org writes:

 From tests/spec/glsl-1.10,  I've extended variable-index-write.sh and
 variable-index-read.sh so the scripts are able to generate tests for
 GLSL ES 1.00.

 Posting the patches for the scripts is trivial but how do we want to
 handle all the tests that it generates?

 Seems like a bit of a waste of mailing list bandwidth to post the 326
 resulting new files as patches that are output from the scripts.

I maintain that we shouldn't be checking in generated files like these.
Worst case where we can't decide to not check them in, just trim your
patch to an interesting subset to demo what happens.


pgpV2EeZ95Aim.pgp
Description: PGP signature
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit