[Piglit] [PATCH 2/3] arb_tessellation_shader: Texture read from TES

Ilia Mirkin imirkin at alum.mit.edu
Wed Nov 25 08:46:43 PST 2015


On Wed, Nov 25, 2015 at 11:12 AM, Glenn Kennard <glenn.kennard at gmail.com> wrote:
> ---
>  .../execution/tes-read-texture.shader_test         | 81 ++++++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 tests/spec/arb_tessellation_shader/execution/tes-read-texture.shader_test
>
> diff --git a/tests/spec/arb_tessellation_shader/execution/tes-read-texture.shader_test b/tests/spec/arb_tessellation_shader/execution/tes-read-texture.shader_test
> new file mode 100644
> index 0000000..6f64f04
> --- /dev/null
> +++ b/tests/spec/arb_tessellation_shader/execution/tes-read-texture.shader_test
> @@ -0,0 +1,81 @@
> +[require]
> +GLSL >= 1.50
> +GL_ARB_tessellation_shader
> +
> +[vertex shader]

[vertex shader passthrough]

And name your vertex 'piglit_vertex'.

> +in vec4 vertex;
> +
> +void main()
> +{
> +       gl_Position = vertex;
> +}
> +
> +[tessellation control shader]
> +#extension GL_ARB_tessellation_shader : require
> +layout(vertices = 3) out;
> +
> +void main() {
> +       gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
> +       gl_TessLevelOuter = float[4](25.0, 25.0, 25.0, 25.0);
> +       gl_TessLevelInner = float[2](25.0, 25.0);
> +}

You could just skip the tcs... pretty sure there's a way to define
default tess factors.

> +
> +[tessellation evaluation shader]
> +#extension GL_ARB_tessellation_shader : require
> +layout(triangles) in;
> +out vec4 color;
> +uniform sampler2D image;

Normally we call these 'tex'... not to confuse with actual shader images...

> +
> +void main() {
> +       gl_Position =
> +               gl_in[0].gl_Position * gl_TessCoord[0] +
> +               gl_in[1].gl_Position * gl_TessCoord[1] +
> +               gl_in[2].gl_Position * gl_TessCoord[2];
> +       color = texture(image, gl_Position.xy*0.5 + vec2(0.5));
> +}
> +
> +[fragment shader]
> +in vec4 color;
> +void main()
> +{
> +       gl_FragColor = color;
> +}
> +
> +[vertex data]
> +vertex/float/2
> +-1.0 -1.0
> + 1.0 -1.0
> +-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 1.0
> +clear
> +patch parameter vertices 3
> +uniform int image 0
> +texture checkerboard 0 0 (32, 32) (0.0, 0.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +#draw arrays GL_PATCHES 0 3
> +#draw arrays GL_PATCHES 3 3
> +draw arrays GL_PATCHES 0 6
> +
> +# black portion of checkerboard
> +relative probe rgba (0, 0) (0, 0, 0, 0)
> +relative probe rgba (0.25, 0.25) (0,0,0,0)
> +relative probe rgba (0.75, 0.75) (0,0,0,0)
> +
> +# green portion of checkerboard
> +relative probe rgba (0, 0.75) (0,1,0,0)
> +relative probe rgba (0.75, 0.25) (0,1,0,0)
> +relative probe rgba (0.5, 0.5) (0,1,0,0)
> +
> +# should hit the red border color of the texture
> +tolerance 0.1 0.1 0 0.1
> +relative probe rgba (1, 1) (1,0,0,1)
> +relative probe rgba (0, 1) (1,0,0,1)
> +relative probe rgba (1, 0) (1,0,0,1)
> --
> 1.9.1
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list