Message ID | 1434159049-9673-1-git-send-email-t_arceri@yahoo.com.au |
---|---|
State | New |
Headers | show |
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 --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),