Marek Olšák <mar...@gmail.com> writes:

> From: Marek Olšák <marek.ol...@amd.com>
>
> The test is wrong and the GLSL 1.30 citation in the test states very
> clearly that discard can cause non-uniform control flow for any code that
> follows.

Heh, IIRC I sent this exact same patch over a year ago but I didn't get
particularly enthusiastic feed-back so I never pushed it (you can
probably find the discussion in the piglit mailing list archives if
you're interested).  Anyway the test is obviously bogus so this seems
like the right thing to do to me:

Reviewed-by: Francisco Jerez <curroje...@riseup.net>

> ---
>  .../execution/fs-discard-exit-3.shader_test        | 76 
> ----------------------
>  1 file changed, 76 deletions(-)
>  delete mode 100644 
> tests/spec/glsl-1.30/execution/fs-discard-exit-3.shader_test
>
> diff --git a/tests/spec/glsl-1.30/execution/fs-discard-exit-3.shader_test 
> b/tests/spec/glsl-1.30/execution/fs-discard-exit-3.shader_test
> deleted file mode 100644
> index 14e9b47..0000000
> --- a/tests/spec/glsl-1.30/execution/fs-discard-exit-3.shader_test
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -# This is a test for derivatives behavior after a discard.
> -#
> -# From the GLSL 1.30 spec:
> -#
> -#     "The discard keyword is only allowed within fragment shaders. It
> -#      can be used within a fragment shader to abandon the operation
> -#      on the current fragment. This keyword causes the fragment to be
> -#      discarded and no updates to any buffers will occur. Control
> -#      flow exits the shader, and subsequent implicit or explicit
> -#      derivatives are undefined when this control flow is non-uniform
> -#      (meaning different fragments within the primitive take
> -#      different control paths)."
> -
> -
> -[require]
> -GLSL >= 1.30
> -
> -[vertex shader]
> -#version 130
> -
> -in vec4 vertex;
> -out vec2 texcoords;
> -void main()
> -{
> -     gl_Position = vertex;
> -
> -     /* Turn the texcoords into a 1:1 mapping with pixels when
> -      * interpolated.  This means that the coords for our 2x2
> -      * subspan we're interested in for the FS will be:
> -      *
> -      * +-----+-----+
> -      * | 0,1 | 1,1 |
> -      * +-----+-----+
> -      * | 0,0 | 0,1 |
> -      * +-----+-----+
> -      *
> -      * So it would sample the 1x1 miplevel of the GL_TEXTURE_2D
> -      * miptree, unless some other math occurs...
> -      */
> -     texcoords.yx = (vertex.xy + 1) / 2 * 250;
> -}
> -
> -[fragment shader]
> -#version 130
> -in vec2 texcoords;
> -uniform sampler2D s;
> -
> -void main()
> -{
> -     if (gl_FragCoord.x >= 1.0 || gl_FragCoord.y >= 1.0)
> -             discard;
> -
> -     /* Now, we have uniform control after the discard (well,
> -      * except for the join after the if statement up there).  The
> -      * derivatives on this sample should get us the same values
> -      * for the undiscarded pixel as if we hadn't done any discard
> -      * (comment out the "discard" above to see).
> -      */
> -     gl_FragColor = texture(s, texcoords / 4);
> -}
> -
> -[vertex data]
> -vertex/float/2
> --1.0 -1.0
> - 1.0 -1.0
> - 1.0  1.0
> --1.0  1.0
> -
> -[test]
> -clear color 0.5 0.5 0.5 0.5
> -clear
> -
> -texture miptree 0
> -
> -draw arrays GL_TRIANGLE_FAN 0 4
> -probe rgba 0 0 0.0 1.0 0.0 1.0
> -- 
> 2.5.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Attachment: signature.asc
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to