[Piglit] [PATCH] gen_flat_interpolation_qualifier.py: Adds non-flat interpolation tests generator
Dylan Baker
baker.dylan.c at gmail.com
Mon Apr 4 23:25:51 UTC 2016
From the python side of things this looks really good (I can also vouch
for the CMake), I have a few small nits, but nothing serious and I don't
have a need to see another version. You should probably have someone
more GL qualified look at that, but for my part:
Reviewed-by: Dylan Baker <baker.dylan.c at gmail.com>
Quoting Andres Gomez (2016-04-04 10:00:22)
> 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.html
> and Khronos bug #15671.
>
> Also, removed 8 redundant tests replaced by the generator.
>
> Signed-off-by: Andres Gomez <agomez at 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.mako
> create mode 100644 generated_tests/templates/gen_flat_interpolation_qualifier/template.frag.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.mako
> + )
> +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:]
I think these would be clearer with format strings:
'glsl-{}.{}'.format(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 ''))
we don't support python 2.6, so you don't strictly need the numeric
values unless you want to insert the same value more than once.
> +
> + 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/compiler.mako b/generated_tests/templates/gen_flat_interpolation_qualifier/compiler.mako
> new file mode 100644
> index 0000000..eb6117f
> --- /dev/null
> +++ b/generated_tests/templates/gen_flat_interpolation_qualifier/compiler.mako
> @@ -0,0 +1,98 @@
> +## -*- coding: utf-8 -*-
Let's pick one way to set the enconding, and I'll send a patch to
convert all of the python to be utf-8.
I'm personally favorable to "# encoding=utf-8", but I don't care too
much as long as we always do the same thing.
> +<%
> + 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: \
You can actually nest python code inside of ${} blocks, so this might be
more readable as:
${'pass' if mode == 'flat' else 'fail'}
but that's completely up to you
> +% 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/template.frag.mako b/generated_tests/templates/gen_flat_interpolation_qualifier/template.frag.mako
> new file mode 100644
> index 0000000..c15e3c2
> --- /dev/null
> +++ b/generated_tests/templates/gen_flat_interpolation_qualifier/template.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);
> -}
> --
> 2.8.0.rc3
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20160404/a1b1aef9/attachment-0001.sig>
More information about the Piglit
mailing list