Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]> I have already pushed this piglit patch. Just confirm me to do the same for the mesa patch.
Sam On Sat, 2015-07-11 at 22:59 +0200, Renaud Gaubert 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 <[email protected]> > Reviewed-By: Gabriel Laskar <[email protected]> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85252 > > --- > As discussed in [PATCH] glsl 1.10: Fix broken ternary void test > I've merged my 2nd patch in this one as it wasn't pushed yet. > > Chris Forbes: Yes I need someone to push it for me > > .../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.10/execution/void-ternary.shader_test | 3 ++- > 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 +++++++++++++++ > 23 files changed, 338 insertions(+), 1 deletion(-) > 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.10/execution/void-ternary.shader_test > b/tests/spec/glsl-1.10/execution/void-ternary.shader_test > index 157090f..1b0f082 100644 > --- a/tests/spec/glsl-1.10/execution/void-ternary.shader_test > +++ b/tests/spec/glsl-1.10/execution/void-ternary.shader_test > @@ -18,6 +18,7 @@ void bad(void) > > void main() > { > + gl_Position = gl_Vertex; > b ? good() : bad(); > } > > @@ -45,4 +46,4 @@ void main() > uniform int b 1 > > draw rect -1 -1 2 2 > -probe all rgba 0.0 1.0 0.0 0.0 > +probe all rgba 0.0 1.0 0.0 1.0 > 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(); > +}
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
