[Piglit] [PATCH v2] glsl-1.10 Adds tests on how void functions are handled
Samuel Iglesias Gonsálvez
siglesias at igalia.com
Mon Jul 13 07:50:03 PDT 2015
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
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 <renaud at lse.epita.fr>
> Reviewed-By: Gabriel Laskar <gabriel at lse.epita.fr>
> 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();
> +}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20150713/2fbac068/attachment.sig>
More information about the Piglit
mailing list