Reviewed-by: Chis Forbes <chr...@ijw.co.nz>
On Wed, Jul 8, 2015 at 7:52 AM, Renaud Gaubert <ren...@lse.epita.fr> wrote: > Mesa currently doesn't handle void functions and segfaults on > almost all of the test cases. > > This also references the bug 85252 Segfault in compiler while > processing ternary operator with void arguments: > > This will be fixed with the following commit sent to mesa-dev: > [PATCH] glsl: fix Bug 85252 - Segfault in compiler while processing > ternary operator with void arguments > > Signed-off-by: Renaud Gaubert <ren...@lse.epita.fr> > CC: Gabriel Laskar <gabr...@lse.epita.fr> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85252 > --- > .../glsl-1.10/compiler/void/void-array_subscript.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-assignment.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-equal.vert | 16 > ++++++++++++++++ > .../glsl-1.10/compiler/void/void-field_selection.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-logical_and.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-logical_or.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-lt.vert | 16 > ++++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-plus.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert | 16 > ++++++++++++++++ > .../glsl-1.10/compiler/void/void-postfix_increment.vert | 15 +++++++++++++++ > .../glsl-1.10/compiler/void/void-prefix_increment.vert | 15 +++++++++++++++ > tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert | 15 +++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-and_assign.vert | 16 > ++++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert | 15 +++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-lshift.vert | 15 +++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-mod.vert | 15 +++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert | 16 > ++++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-rshift.vert | 15 +++++++++++++++ > .../spec/glsl-1.30/compiler/void/void-shift_assign.vert | 16 > ++++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-unary_not.vert | 15 +++++++++++++++ > tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert | 15 +++++++++++++++ > 22 files changed, 336 insertions(+) > create mode 100644 > tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-assignment.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-equal.vert > create mode 100644 > tests/spec/glsl-1.10/compiler/void/void-field_selection.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-logical_and.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-logical_or.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-lt.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-plus.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert > create mode 100644 > tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert > create mode 100644 > tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert > create mode 100644 tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-and_assign.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-lshift.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-mod.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-rshift.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-unary_not.vert > create mode 100644 tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert > > diff --git a/tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert > b/tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert > new file mode 100644 > index 0000000..0cf3de6 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-array_subscript.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + f()[0]; > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-assignment.vert > b/tests/spec/glsl-1.10/compiler/void/void-assignment.vert > new file mode 100644 > index 0000000..da889bd > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-assignment.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + float y = f(); > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-equal.vert > b/tests/spec/glsl-1.10/compiler/void/void-equal.vert > new file mode 100644 > index 0000000..a107600 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-equal.vert > @@ -0,0 +1,16 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + if (f() == f()) > + f(); > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-field_selection.vert > b/tests/spec/glsl-1.10/compiler/void/void-field_selection.vert > new file mode 100644 > index 0000000..2165d7c > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-field_selection.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + f().test; > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-logical_and.vert > b/tests/spec/glsl-1.10/compiler/void/void-logical_and.vert > new file mode 100644 > index 0000000..fe7bfb1 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-logical_and.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + f() && f(); > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-logical_or.vert > b/tests/spec/glsl-1.10/compiler/void/void-logical_or.vert > new file mode 100644 > index 0000000..260e58c > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-logical_or.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + f() || 1; > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert > b/tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert > new file mode 100644 > index 0000000..1935909 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-logical_xor.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + f() ^^ 1; > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-lt.vert > b/tests/spec/glsl-1.10/compiler/void/void-lt.vert > new file mode 100644 > index 0000000..aca4c72 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-lt.vert > @@ -0,0 +1,16 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + if (f() < f()) > + f(); > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-plus.vert > b/tests/spec/glsl-1.10/compiler/void/void-plus.vert > new file mode 100644 > index 0000000..a5c6466 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-plus.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + f() + f(); > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert > b/tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert > new file mode 100644 > index 0000000..4e59b27 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-plus_assign.vert > @@ -0,0 +1,16 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + float y = 1.0; > + y *= f(); > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert > b/tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert > new file mode 100644 > index 0000000..153d534 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-postfix_increment.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + f()++; > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert > b/tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert > new file mode 100644 > index 0000000..6aa9332 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-prefix_increment.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + ++f(); > +} > diff --git a/tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert > b/tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert > new file mode 100644 > index 0000000..7bea0b1 > --- /dev/null > +++ b/tests/spec/glsl-1.10/compiler/void/void-unary_plus.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.10 > + * [end config] > + */ > + > +#version 110 > + > +void f(void) > +{} > + > +void main() > +{ > + +f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-and_assign.vert > b/tests/spec/glsl-1.30/compiler/void/void-and_assign.vert > new file mode 100644 > index 0000000..027ae1d > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-and_assign.vert > @@ -0,0 +1,16 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + int y = 1; > + y &= f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert > b/tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert > new file mode 100644 > index 0000000..6bd3635 > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-bitwise_and.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + f() & 1; > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-lshift.vert > b/tests/spec/glsl-1.30/compiler/void/void-lshift.vert > new file mode 100644 > index 0000000..f50ac1f > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-lshift.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + f() << f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-mod.vert > b/tests/spec/glsl-1.30/compiler/void/void-mod.vert > new file mode 100644 > index 0000000..6e26a71 > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-mod.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + f() % f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert > b/tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert > new file mode 100644 > index 0000000..df7618a > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-mod_assign.vert > @@ -0,0 +1,16 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + int y = 1; > + y %= f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-rshift.vert > b/tests/spec/glsl-1.30/compiler/void/void-rshift.vert > new file mode 100644 > index 0000000..8410cb5 > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-rshift.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + f() >> f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert > b/tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert > new file mode 100644 > index 0000000..c44fd51 > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-shift_assign.vert > @@ -0,0 +1,16 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + int y = 1; > + y <<= f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-unary_not.vert > b/tests/spec/glsl-1.30/compiler/void/void-unary_not.vert > new file mode 100644 > index 0000000..45a8ebb > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-unary_not.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + !f(); > +} > diff --git a/tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert > b/tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert > new file mode 100644 > index 0000000..05f4e24 > --- /dev/null > +++ b/tests/spec/glsl-1.30/compiler/void/void-unary_tilde.vert > @@ -0,0 +1,15 @@ > +/*[config] > + * expect_result: fail > + * glsl_version: 1.30 > + * [end config] > + */ > + > +#version 130 > + > +void f(void) > +{} > + > +void main() > +{ > + ~f(); > +} > -- > 2.4.5 > > _______________________________________________ > Piglit mailing list > Piglit@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit