diff mbox

ext_transform_feedback: dont run gles tests where restrictions apply

Message ID 1434159049-9673-1-git-send-email-t_arceri@yahoo.com.au
State New
Headers show

Commit Message

'Timothy Arceri' via Patchwork Forward June 13, 2015, 1:30 a.m. UTC
In GLES vertex shader outputs cant be arrays of structs or structs that
contain arrays or structs.

The GLSL ES 3.0 spec says:

"Vertex output variables output per-vertex data and are declared
using the out storage qualifier or the centroid out storage qualifier.
They can only be float, floating-point vectors, matrices, signed or
unsigned integers or integer vectors, or arrays or structures of any
these."

The GLSL ES 3.1 is a bit clearer about this:

It is a compile-time error to declare a vertex shader output with,
 or that contains, any of the following types:

* A boolean type
* An opaque type
* An array of arrays
* An array of structures
* A structure containing an array
* A structure containing a structure
---
 tests/all.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Comments

'Timothy Arceri' via Patchwork Forward June 13, 2015, 2:10 a.m. UTC | #1
I'm not longer as confident about this as old GL specs are just as
vague but the restriction isn't enforced there, for more information
please see:

https://bugs.freedesktop.org/show_bug.cgi?id=90961


On Sat, 13 Jun 2015 11:30:49 +1000
Timothy Arceri <t_arceri@yahoo.com.au> wrote:

> In GLES vertex shader outputs cant be arrays of structs or structs
> that contain arrays or structs.
> 
> The GLSL ES 3.0 spec says:
> 
> "Vertex output variables output per-vertex data and are declared
> using the out storage qualifier or the centroid out storage qualifier.
> They can only be float, floating-point vectors, matrices, signed or
> unsigned integers or integer vectors, or arrays or structures of any
> these."
> 
> The GLSL ES 3.1 is a bit clearer about this:
> 
> It is a compile-time error to declare a vertex shader output with,
>  or that contains, any of the following types:
> 
> * A boolean type
> * An opaque type
> * An array of arrays
> * An array of structures
> * A structure containing an array
> * A structure containing a structure
> ---
>  tests/all.py | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/all.py b/tests/all.py
> index 49e96ab..8e8ea97 100755
> --- a/tests/all.py
> +++ b/tests/all.py
> @@ -3288,10 +3288,15 @@ with profile.group_manager(
>  
>      for api_suffix, possible_options in [('', [[], ['interface']]),
>                                           ('_gles3', [[]])]:
> -        for subtest in ['basic-struct', 'struct-whole-array',
> -                        'struct-array-elem', 'array-struct',
> -                        'array-struct-whole-array',
> 'array-struct-array-elem',
> -                        'struct-struct',
> 'array-struct-array-struct']:
> +        if api_suffix == '_gles3':
> +            subtest_list = ['basic-struct']
> +        else:
> +            subtest_list = ['basic-struct', 'struct-whole-array',
> +                            'struct-array-elem', 'array-struct',
> +                            'array-struct-whole-array',
> +                            'array-struct-array-elem',
> 'struct-struct',
> +                            'array-struct-array-struct']
> +        for subtest in subtest_list:
>              for mode in ['error', 'get', 'run', 'run-no-fs']:
>                  for options in possible_options:
>                      g(['ext_transform_feedback-structs{0}'.format(api_suffix),
diff mbox

Patch

diff --git a/tests/all.py b/tests/all.py
index 49e96ab..8e8ea97 100755
--- a/tests/all.py
+++ b/tests/all.py
@@ -3288,10 +3288,15 @@  with profile.group_manager(
 
     for api_suffix, possible_options in [('', [[], ['interface']]),
                                          ('_gles3', [[]])]:
-        for subtest in ['basic-struct', 'struct-whole-array',
-                        'struct-array-elem', 'array-struct',
-                        'array-struct-whole-array', 'array-struct-array-elem',
-                        'struct-struct', 'array-struct-array-struct']:
+        if api_suffix == '_gles3':
+            subtest_list = ['basic-struct']
+        else:
+            subtest_list = ['basic-struct', 'struct-whole-array',
+                            'struct-array-elem', 'array-struct',
+                            'array-struct-whole-array',
+                            'array-struct-array-elem', 'struct-struct',
+                            'array-struct-array-struct']
+        for subtest in subtest_list:
             for mode in ['error', 'get', 'run', 'run-no-fs']:
                 for options in possible_options:
                     g(['ext_transform_feedback-structs{0}'.format(api_suffix),