Hi, this patch is still unreviewed.
We'd welcome some help to get this into piglit with guarantees that the tests added are OK :) Br. On Mon, 2016-04-04 at 20:05 +0300, Andres Gomez wrote: > This patch provides additional tests for the patch under review at: > https://lists.freedesktop.org/archives/mesa-dev/2016-April/111842.htm > l > > Also, this generator provides additional tests for the > ARB_gpu_shader_fp64 extension: > https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt > > Which has previous patches for new tests under review at: > https://lists.freedesktop.org/archives/piglit/2016-March/019167.html > > This work is complemented with the corresponding bug to add support > for this extension into the i965 shader backend at: > https://bugs.freedesktop.org/show_bug.cgi?id=92760 > > Br. > > On Mon, 2016-04-04 at 20:00 +0300, Andres Gomez wrote: > > > > Generator for error checking on "flat" keyword. > > > > This generator adds, additionally, checks for variables inside > > structs > > and interface blocks, which weren't explicitly mentioned in the > > GLSL > > specs and, partially, in the GLSL ES specs. > > > > For a discussion about this check > > https://lists.freedesktop.org/archives/mesa-dev/2016-March/109117.h > > tm > > l > > and Khronos bug #15671. > > > > Also, removed 8 redundant tests replaced by the generator. > > > > Signed-off-by: Andres Gomez <ago...@igalia.com> > > --- > > generated_tests/CMakeLists.txt | 7 + > > .../gen_flat_interpolation_qualifier.py | 170 > > +++++++++++++++++++++ > > .../gen_flat_interpolation_qualifier/compiler.mako | 98 > > ++++++++++++ > > .../template.frag.mako | 60 ++++++++ > > .../nonflat-int-array.frag | 31 ---- > > .../interpolation-qualifiers/nonflat-int.frag | 26 ---- > > .../interpolation-qualifiers/nonflat-ivec4.frag | 26 ---- > > .../interpolation-qualifiers/nonflat-uint.frag | 26 ---- > > .../interpolation-qualifiers/nonflat-uvec4.frag | 26 ---- > > .../nonflat-int-array.frag | 22 --- > > .../interpolation-qualifiers/nonflat-int.frag | 22 --- > > .../interpolation-qualifiers/nonflat-ivec4.frag | 22 --- > > .../interpolation-qualifiers/nonflat-uint.frag | 22 --- > > .../interpolation-qualifiers/nonflat-uvec4.frag | 22 --- > > .../varying-struct-nonflat-int.frag | 29 ---- > > .../varying-struct-nonflat-uint.frag | 29 ---- > > 16 files changed, 335 insertions(+), 303 deletions(-) > > create mode 100644 > > generated_tests/gen_flat_interpolation_qualifier.py > > create mode 100644 > > generated_tests/templates/gen_flat_interpolation_qualifier/compiler > > .m > > ako > > create mode 100644 > > generated_tests/templates/gen_flat_interpolation_qualifier/template > > .f > > rag.mako > > delete mode 100644 tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-int-array.frag > > delete mode 100644 tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-int.frag > > delete mode 100644 tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-ivec4.frag > > delete mode 100644 tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-uint.frag > > delete mode 100644 tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-uvec4.frag > > delete mode 100644 tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-int-array.frag > > delete mode 100644 tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-int.frag > > delete mode 100644 tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-ivec4.frag > > delete mode 100644 tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-uint.frag > > delete mode 100644 tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-uvec4.frag > > delete mode 100644 tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/varying-struct-nonflat-int.frag > > delete mode 100644 tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/varying-struct-nonflat-uint.frag > > > > diff --git a/generated_tests/CMakeLists.txt > > b/generated_tests/CMakeLists.txt > > index 569ca21..3c5b11a 100644 > > --- a/generated_tests/CMakeLists.txt > > +++ b/generated_tests/CMakeLists.txt > > @@ -124,6 +124,12 @@ piglit_make_generated_tests( > > templates/gen_inout_fp64/template.shader_test.mako > > ) > > piglit_make_generated_tests( > > + flat_interpolation_qualifier.list > > + gen_flat_interpolation_qualifier.py > > + templates/gen_flat_interpolation_qualifier/compiler.mako > > + templates/gen_flat_interpolation_qualifier/template.frag.m > > ak > > o > > + ) > > +piglit_make_generated_tests( > > shader_precision_tests.list > > gen_shader_precision_tests.py > > builtin_function.py > > @@ -181,6 +187,7 @@ add_custom_target(gen-gl-tests > > builtin_uniform_tests_fp64.list > > constant_array_size_tests_fp64.list > > inout_fp64.list > > + flat_interpolation_qualifier.list > > shader_precision_tests.list > > shader_image_load_store_tests.list > > variable_index_read_tests.list > > diff --git a/generated_tests/gen_flat_interpolation_qualifier.py > > b/generated_tests/gen_flat_interpolation_qualifier.py > > new file mode 100644 > > index 0000000..2290c3b > > --- /dev/null > > +++ b/generated_tests/gen_flat_interpolation_qualifier.py > > @@ -0,0 +1,170 @@ > > +# coding=utf-8 > > +# > > +# Copyright © 2016 Intel Corporation > > +# > > +# Permission is hereby granted, free of charge, to any person > > obtaining a > > +# copy of this software and associated documentation files (the > > "Software"), > > +# to deal in the Software without restriction, including without > > limitation > > +# the rights to use, copy, modify, merge, publish, distribute, > > sublicense, > > +# and/or sell copies of the Software, and to permit persons to > > whom > > the > > +# Software is furnished to do so, subject to the following > > conditions: > > +# > > +# The above copyright notice and this permission notice (including > > the next > > +# paragraph) shall be included in all copies or substantial > > portions > > of the > > +# Software. > > +# > > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > > EXPRESS OR > > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > > MERCHANTABILITY, > > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO > > EVENT > > SHALL > > +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, > > DAMAGES > > OR OTHER > > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > > ARISING > > +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > > OTHER > > +# DEALINGS IN THE SOFTWARE. > > + > > +"""Generate non-flat interpolation qualifier tests.""" > > + > > +from __future__ import print_function, division, absolute_import > > +import argparse > > +import os > > +import itertools > > + > > +from templates import template_dir > > +from modules import utils > > + > > +TEMPLATES = > > template_dir(os.path.basename(os.path.splitext(__file__)[0])) > > + > > +INT_TYPES = ['int', 'ivec2', 'ivec3', 'ivec4'] > > + > > +UINT_TYPES = ['uint', 'uvec2', 'uvec3', 'uvec4'] > > + > > +DOUBLE_TYPES = ['double', 'dvec2', 'dvec3', 'dvec4', > > + 'dmat2', 'dmat2x3', 'dmat2x4', > > + 'dmat3x2', 'dmat3', 'dmat3x4', > > + 'dmat4x2', 'dmat4x3', 'dmat4'] > > + > > +def get_dir_name(ver): > > + """Returns the directory name to save tests given a GLSL > > version.""" > > + > > + assert isinstance(ver, str) > > + if ver.startswith('GL_'): > > + feature_dir = ver[3:].lower() > > + elif ver.endswith(' es'): > > + feature_dir = 'glsl-es-' + ver[0] + '.' + ver[1:3] > > + else: > > + feature_dir = 'glsl-' + ver[0] + '.' + ver[1:] > > + > > + return os.path.join('spec', feature_dir, 'compiler', > > + 'flat_interpolation') > > + > > + > > +def generate(type_name, mode, interface_block, struct, array, ver, > > names_only): > > + """Generate GLSL parser tests.""" > > + > > + assert isinstance(type_name, str) > > + assert isinstance(mode, str) > > + assert isinstance(interface_block, bool) > > + assert isinstance(struct, bool) > > + assert isinstance(array, bool) > > + assert isinstance(ver, str) > > + assert isinstance(names_only, bool) > > + > > + filename = os.path.join( > > + get_dir_name(ver), > > + '{0}{1}{2}{3}-{4}{5}.frag'.format(mode, > > + '-interface_block' if > > interface_block else '', > > + '-struct' if struct else > > '', > > + '-array' if array else > > '', > > + type_name, > > + '-bad' if mode != 'flat' > > else '')) > > + > > + print(filename) > > + > > + if not names_only: > > + with open(filename, 'w') as test_file: > > + test_file.write(TEMPLATES.get_template( > > + 'template.frag.mako').render_unicode( > > + ver=ver, > > + mode=mode, > > + type_name=type_name, > > + interface_block=interface_block, > > + struct=struct, > > + array=array)) > > + > > + > > +def create_tests(type_names, glsl_vers, names_only): > > + """Creates combinations for flat qualifier tests.""" > > + > > + assert isinstance(type_names, list) > > + assert isinstance(glsl_vers, list) > > + assert isinstance(names_only, bool) > > + > > + modes = ['flat', 'noperspective', 'smooth', 'default'] > > + interface_blocks = [True, False] > > + structs = [True, False] > > + arrays = [True, False] > > + if not names_only: > > + for ver in glsl_vers: > > + utils.safe_makedirs(get_dir_name(ver)) > > + > > + for t_name, mode, interface_block, struct, array, ver in > > itertools.product(type_names, > > + > > > > modes, > > + > > > > interface_blocks, > > + > > > > structs, > > + > > > > arrays, > > + > > > > glsl_vers): > > + if ver.endswith(' es'): > > + # There is no "noperspective" interpolation mode in > > GLSL > > ES > > + if mode == 'noperspective': > > + continue > > + # There is no support for arrays in input structs in > > GLSL ES > > + if struct and array: > > + continue > > + # Input interface blocks didn't appear in GLSL until 1.50 > > + if interface_block and ver == '130': > > + ver = '150' > > + # Input interface blocks didn't appear in GLSL ES until > > 3.20 > > + if interface_block and ver == '300 es': > > + ver = '320 es' > > + # Input structs weren't allowed until 1.50 > > + if struct and ver == '130': > > + ver = '150' > > + yield t_name, mode, interface_block, struct, array, ver, > > names_only > > + > > + > > +def all_tests(names_only): > > + """Creates all the combinations for flat qualifier tests.""" > > + > > + assert isinstance(names_only, bool) > > + > > + # We need additional directories for GLSL 150 and GLSL ES 320 > > + if not names_only: > > + utils.safe_makedirs(get_dir_name('150')) > > + utils.safe_makedirs(get_dir_name('320 es')) > > + for test_args in (list(create_tests(INT_TYPES + UINT_TYPES, > > + ['130', '300 es'], > > + names_only)) > > + + list(create_tests(DOUBLE_TYPES, > > + ['GL_ARB_gpu_shader_fp64 > > ', > > '400'], > > + names_only))): > > + yield test_args > > + > > + > > +def main(): > > + """Main function.""" > > + > > + parser = argparse.ArgumentParser( > > + description="Generate non-flat interpolation qualifier > > tests > > with fp64 types") > > + parser.add_argument( > > + '--names-only', > > + dest='names_only', > > + action='store_true', > > + default=False, > > + help="Don't output files, just generate a list of > > filenames > > to stdout") > > + args = parser.parse_args() > > + > > + for test_args in all_tests(args.names_only): > > + generate(*test_args) > > + > > + > > +if __name__ == '__main__': > > + main() > > diff --git > > a/generated_tests/templates/gen_flat_interpolation_qualifier/compil > > er > > .mako > > b/generated_tests/templates/gen_flat_interpolation_qualifier/compil > > er > > .mako > > new file mode 100644 > > index 0000000..eb6117f > > --- /dev/null > > +++ > > b/generated_tests/templates/gen_flat_interpolation_qualifier/compil > > er > > .mako > > @@ -0,0 +1,98 @@ > > +## -*- coding: utf-8 -*- > > +<% > > + if ver == 'GL_ARB_gpu_shader_fp64': > > + glsl_version_int = '150' > > + else: > > + glsl_version_int = ver > > + > > + glsl_version = glsl_version_int[0] + '.' + > > glsl_version_int[1:3] > > +%>\ > > +/* [config] > > + * expect_result: \ > > +% if mode == 'flat': > > +pass > > +% else: > > +fail > > +% endif > > + * glsl_version: ${glsl_version} > > +% if ver == 'GL_ARB_gpu_shader_fp64': > > + * require_extensions: ${ver} > > +% endif > > + * [end config] > > + * > > +<%block name="comments"/>\ > > +% if ver == 'GL_ARB_gpu_shader_fp64': > > + * > > + * ${ver} spec states: > > + * > > + * "Modifications to The OpenGL Shading Language Specification, > > Version 1.50 > > + * (Revision 09) > > + * ... > > + * Modify Section 4.3.4, Inputs, p. 31 > > + * ... > > + * (modify third paragraph, p. 32, allowing doubles as > > inputs > > and disallowing > > + * as non-flat fragment inputs) ... Fragment inputs can > > only > > be signed and > > + * unsigned integers and integer vectors, float, floating- > > point vectors, > > + * double, double-precision vectors, single- or double- > > precision matrices, or > > + * arrays or structures of these. Fragment shader inputs > > that > > are signed or > > + * unsigned integers, integer vectors, doubles, double- > > precision vectors, or > > + * double-precision matrices must be qualified with the > > interpolation > > + * qualifier flat." > > +% elif ver == '130': > > + * > > + * The OpenGL Shading Language 1.30 spec states: > > + * > > + * "4.3.6 Outputs > > + * ... > > + * If a vertex output is a signed or unsigned integer or > > + * integer vector, then it must be qualified with the > > + * interpolation qualifier flat. > > + * ... > > + * The type and presence of the interpolation qualifiers > > and > > + * storage qualifiers and invariant qualifiers of variables > > + * with the same name declared in linked vertex and > > fragments > > + * shaders must match, otherwise the link command will > > fail." > > + * > > + * From this, it can be followed that if a fragment input is a > > signed > > + * or unsigned integer or derived type, it must be qualified with > > the > > + * interpolation qualifier flat. > > +% elif ver == '150': > > + * > > + * The OpenGL Shading Language 1.50 spec states: > > + * > > + * "4.3.4 Inputs > > + * ... > > + * Fragment shader inputs that are signed or unsigned > > integers > > + * or integer vectors must be qualified with the > > interpolation > > + * qualifier flat." > > +% elif ver == '400': > > + * > > + * The OpenGL Shading Language 4.00 spec states: > > + * > > + * "4.3.4 Inputs > > + * ... > > + * Fragment shader inputs that are signed or unsigned > > integers, > > + * integer vectors, or any double-precision floating-point > > type > > + * must be qualified with the interpolation qualifier > > flat." > > +% elif ver == '300 es': > > + * > > + * The OpenGL ES Shading Language 3.00 spec states: > > + * > > + * "4.3.4 Input Variables > > + * ... > > + * Fragment shader inputs that are, or contain, signed or > > + * unsigned integers or integer vectors must be qualified > > with > > + * the interpolation qualifier flat." > > +% endif > > + */ > > + > > +#version ${glsl_version_int} > > +% if ver == 'GL_ARB_gpu_shader_fp64': > > +#extension ${ver} : require > > +% endif > > +% if ver.endswith(' es'): > > + > > +precision mediump float; > > +% endif > > + > > +${next.body()}\ > > diff --git > > a/generated_tests/templates/gen_flat_interpolation_qualifier/templa > > te > > .frag.mako > > b/generated_tests/templates/gen_flat_interpolation_qualifier/templa > > te > > .frag.mako > > new file mode 100644 > > index 0000000..c15e3c2 > > --- /dev/null > > +++ > > b/generated_tests/templates/gen_flat_interpolation_qualifier/templa > > te > > .frag.mako > > @@ -0,0 +1,60 @@ > > +## -*- coding: utf-8 -*- > > +<%inherit file="compiler.mako"/>\ > > +<% > > + var_name = 'u' > > + var_as_vec4 = 's.' + var_name if struct else var_name > > + if array: > > + var_name += '[4]' > > + var_as_vec4 += '[3]' > > + > > + if type_name.startswith('dmat'): > > + var_as_vec4 += '[0]' > > + > > + if type_name.endswith('2'): > > + var_as_vec4 += '.xyxy' > > + elif type_name.endswith('3'): > > + var_as_vec4 += '.xyzx' > > +%>\ > > +<%block name="comments">\ > > + * Declare a ${mode} interpolation ${type_name}\ > > +% if array: > > + array\ > > +% endif > > +% if struct: > > + inside a struct\ > > +% endif > > +% if interface_block: > > + in an interface block\ > > +% endif > > +. > > +</%block>\ > > +% if struct: > > +struct S { > > + ${type_name} ${var_name}; > > +}; > > + > > +% endif > > +% if interface_block: > > +in IB { > > + \ > > +% endif > > +% if mode != 'default': > > +${mode} \ > > +% endif > > +% if not interface_block: > > +in \ > > +% endif > > +% if struct: > > +S s; > > +% else: > > +${type_name} ${var_name}; > > +% endif > > +% if interface_block: > > +}; > > +% endif > > +out vec4 color; > > + > > +void main() > > +{ > > + color = vec4(${var_as_vec4}); > > +} > > diff --git a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-int-array.frag b/tests/spec/glsl- > > 1.30/compiler/interpolation-qualifiers/nonflat-int-array.frag > > deleted file mode 100644 > > index 4a610e9..0000000 > > --- a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat- > > int-array.frag > > +++ /dev/null > > @@ -1,31 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 1.30 > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Inputs") of the GLSL 1.50 spec: > > -// "Fragment shader inputs that are signed or unsigned integers > > or > > -// integer vectors must be qualified with the interpolation > > qualifier > > -// flat." > > -// > > -// Note that prior to GLSL 1.50, this requirement is applied to > > vertex > > -// outputs rather than fragment inputs. That creates problems in > > the > > -// presence of geometry shaders, so we assume the implementation > > -// should adopt the GLSL 1.50 rule for all desktop GL shaders. > > -// > > -// Note also that the text above makes no provision about arrays > > of > > -// integers; this is presumably an oversight, since there is no > > -// reasonable way to interpolate a fragment shader input that > > contains > > -// an integer. > > - > > -#version 130 > > - > > -in int[2] x; > > - > > -void main() > > -{ > > - gl_FragColor = vec4(float(x[0]), float(x[1]), 0.0, 0.0); > > -} > > diff --git a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-int.frag b/tests/spec/glsl- > > 1.30/compiler/interpolation-qualifiers/nonflat-int.frag > > deleted file mode 100644 > > index 9cfc82e..0000000 > > --- a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat- > > int.frag > > +++ /dev/null > > @@ -1,26 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 1.30 > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Inputs") of the GLSL 1.50 spec: > > -// "Fragment shader inputs that are signed or unsigned integers > > or > > -// integer vectors must be qualified with the interpolation > > qualifier > > -// flat." > > -// > > -// Note that prior to GLSL 1.50, this requirement is applied to > > vertex > > -// outputs rather than fragment inputs. That creates problems in > > the > > -// presence of geometry shaders, so we assume the implementation > > -// should adopt the GLSL 1.50 rule for all desktop GL shaders. > > - > > -#version 130 > > - > > -in int x; > > - > > -void main() > > -{ > > - gl_FragColor = vec4(float(x)); > > -} > > diff --git a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-ivec4.frag b/tests/spec/glsl- > > 1.30/compiler/interpolation-qualifiers/nonflat-ivec4.frag > > deleted file mode 100644 > > index 9fbf4e4..0000000 > > --- a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat- > > ivec4.frag > > +++ /dev/null > > @@ -1,26 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 1.30 > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Inputs") of the GLSL 1.50 spec: > > -// "Fragment shader inputs that are signed or unsigned integers > > or > > -// integer vectors must be qualified with the interpolation > > qualifier > > -// flat." > > -// > > -// Note that prior to GLSL 1.50, this requirement is applied to > > vertex > > -// outputs rather than fragment inputs. That creates problems in > > the > > -// presence of geometry shaders, so we assume the implementation > > -// should adopt the GLSL 1.50 rule for all desktop GL shaders. > > - > > -#version 130 > > - > > -in ivec4 x; > > - > > -void main() > > -{ > > - gl_FragColor = vec4(x); > > -} > > diff --git a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-uint.frag b/tests/spec/glsl- > > 1.30/compiler/interpolation-qualifiers/nonflat-uint.frag > > deleted file mode 100644 > > index e5e114a..0000000 > > --- a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat- > > uint.frag > > +++ /dev/null > > @@ -1,26 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 1.30 > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Inputs") of the GLSL 1.50 spec: > > -// "Fragment shader inputs that are signed or unsigned integers > > or > > -// integer vectors must be qualified with the interpolation > > qualifier > > -// flat." > > -// > > -// Note that prior to GLSL 1.50, this requirement is applied to > > vertex > > -// outputs rather than fragment inputs. That creates problems in > > the > > -// presence of geometry shaders, so we assume the implementation > > -// should adopt the GLSL 1.50 rule for all desktop GL shaders. > > - > > -#version 130 > > - > > -in uint x; > > - > > -void main() > > -{ > > - gl_FragColor = vec4(float(x)); > > -} > > diff --git a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat-uvec4.frag b/tests/spec/glsl- > > 1.30/compiler/interpolation-qualifiers/nonflat-uvec4.frag > > deleted file mode 100644 > > index b8dd7e2..0000000 > > --- a/tests/spec/glsl-1.30/compiler/interpolation- > > qualifiers/nonflat- > > uvec4.frag > > +++ /dev/null > > @@ -1,26 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 1.30 > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Inputs") of the GLSL 1.50 spec: > > -// "Fragment shader inputs that are signed or unsigned integers > > or > > -// integer vectors must be qualified with the interpolation > > qualifier > > -// flat." > > -// > > -// Note that prior to GLSL 1.50, this requirement is applied to > > vertex > > -// outputs rather than fragment inputs. That creates problems in > > the > > -// presence of geometry shaders, so we assume the implementation > > -// should adopt the GLSL 1.50 rule for all desktop GL shaders. > > - > > -#version 130 > > - > > -in uvec4 x; > > - > > -void main() > > -{ > > - gl_FragColor = vec4(x); > > -} > > diff --git a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-int-array.frag b/tests/spec/glsl-es- > > 3.00/compiler/interpolation-qualifiers/nonflat-int-array.frag > > deleted file mode 100644 > > index a36ea73..0000000 > > --- a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-int-array.frag > > +++ /dev/null > > @@ -1,22 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 3.00 es > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Input Variables") of the GLSL ES 3.00 > > spec: > > -// "Fragment shader inputs that are, or contain, signed or > > unsigned > > -// integers or integer vectors must be qualified with the > > -// interpolation qualifier flat." > > - > > -#version 300 es > > - > > -in int[2] x; > > -out highp vec4 color; > > - > > -void main() > > -{ > > - color = vec4(float(x[0]), float(x[1]), 0.0, 0.0); > > -} > > diff --git a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-int.frag b/tests/spec/glsl-es- > > 3.00/compiler/interpolation-qualifiers/nonflat-int.frag > > deleted file mode 100644 > > index 470ebbf..0000000 > > --- a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-int.frag > > +++ /dev/null > > @@ -1,22 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 3.00 es > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Input Variables") of the GLSL ES 3.00 > > spec: > > -// "Fragment shader inputs that are, or contain, signed or > > unsigned > > -// integers or integer vectors must be qualified with the > > -// interpolation qualifier flat." > > - > > -#version 300 es > > - > > -in int x; > > -out highp vec4 color; > > - > > -void main() > > -{ > > - color = vec4(x); > > -} > > diff --git a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-ivec4.frag b/tests/spec/glsl-es- > > 3.00/compiler/interpolation-qualifiers/nonflat-ivec4.frag > > deleted file mode 100644 > > index ffdec89..0000000 > > --- a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-ivec4.frag > > +++ /dev/null > > @@ -1,22 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 3.00 es > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Input Variables") of the GLSL ES 3.00 > > spec: > > -// "Fragment shader inputs that are, or contain, signed or > > unsigned > > -// integers or integer vectors must be qualified with the > > -// interpolation qualifier flat." > > - > > -#version 300 es > > - > > -in ivec4 x; > > -out highp vec4 color; > > - > > -void main() > > -{ > > - color = vec4(x); > > -} > > diff --git a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-uint.frag b/tests/spec/glsl-es- > > 3.00/compiler/interpolation-qualifiers/nonflat-uint.frag > > deleted file mode 100644 > > index 52bb49d..0000000 > > --- a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-uint.frag > > +++ /dev/null > > @@ -1,22 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 3.00 es > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Input Variables") of the GLSL ES 3.00 > > spec: > > -// "Fragment shader inputs that are, or contain, signed or > > unsigned > > -// integers or integer vectors must be qualified with the > > -// interpolation qualifier flat." > > - > > -#version 300 es > > - > > -in uint x; > > -out highp vec4 color; > > - > > -void main() > > -{ > > - color = vec4(x); > > -} > > diff --git a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-uvec4.frag b/tests/spec/glsl-es- > > 3.00/compiler/interpolation-qualifiers/nonflat-uvec4.frag > > deleted file mode 100644 > > index 86e5702..0000000 > > --- a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/nonflat-uvec4.frag > > +++ /dev/null > > @@ -1,22 +0,0 @@ > > -// [config] > > -// expect_result: fail > > -// glsl_version: 3.00 es > > -// check_link: true > > -// [end config] > > -// > > -// Declare a non-flat integral fragment input. > > -// > > -// From section 4.3.4 ("Input Variables") of the GLSL ES 3.00 > > spec: > > -// "Fragment shader inputs that are, or contain, signed or > > unsigned > > -// integers or integer vectors must be qualified with the > > -// interpolation qualifier flat." > > - > > -#version 300 es > > - > > -in uvec4 x; > > -out highp vec4 color; > > - > > -void main() > > -{ > > - color = vec4(x); > > -} > > diff --git a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/varying-struct-nonflat-int.frag b/tests/spec/glsl-es- > > 3.00/compiler/interpolation-qualifiers/varying-struct-nonflat- > > int.frag > > deleted file mode 100644 > > index 42360c2..0000000 > > --- a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/varying-struct-nonflat-int.frag > > +++ /dev/null > > @@ -1,29 +0,0 @@ > > -/* [config] > > - * expect_result: fail > > - * glsl_version: 3.00 > > - * check_link: true > > - * [end config] > > - * > > - * From the GLSL ES 3.00 spec, Section 4.3.4 ("Input Variables"): > > - * > > - * "Fragment shader inputs that are, or contain, signed or > > - * unsigned integers or integer vectors must be qualified with > > the > > - * interpolation qualifier flat." > > - * > > - * This test verifies that a non-flat varying struct containing > > - * signed integral data is properly flagged as an error. > > - */ > > - > > -#version 300 es > > - > > -struct S { > > - int i; > > -}; > > - > > -in S foo; > > -out highp vec4 color; > > - > > -void main() > > -{ > > - color = vec4(foo.i); > > -} > > diff --git a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/varying-struct-nonflat-uint.frag b/tests/spec/glsl-es- > > 3.00/compiler/interpolation-qualifiers/varying-struct-nonflat- > > uint.frag > > deleted file mode 100644 > > index 525aaa1..0000000 > > --- a/tests/spec/glsl-es-3.00/compiler/interpolation- > > qualifiers/varying-struct-nonflat-uint.frag > > +++ /dev/null > > @@ -1,29 +0,0 @@ > > -/* [config] > > - * expect_result: fail > > - * glsl_version: 3.00 > > - * check_link: true > > - * [end config] > > - * > > - * From the GLSL ES 3.00 spec, Section 4.3.4 ("Input Variables"): > > - * > > - * "Fragment shader inputs that are, or contain, signed or > > - * unsigned integers or integer vectors must be qualified with > > the > > - * interpolation qualifier flat." > > - * > > - * This test verifies that a non-flat varying struct containing > > - * unsigned integral data is properly flagged as an error. > > - */ > > - > > -#version 300 es > > - > > -struct S { > > - uint u; > > -}; > > - > > -in S foo; > > -out highp vec4 color; > > - > > -void main() > > -{ > > - color = vec4(foo.u); > > -} -- Br, Andres
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit