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(); +} -- 2.4.5 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
