[Piglit] [PATCH] glsl-deriv-varyings: Migrated to shader_runner and corrected test expectations on deriv + abs cases

Andres Gomez agomez at igalia.com
Wed May 6 02:40:44 PDT 2015


I'd like to land this next week if nobody says otherwise.

Br.

On Tue, 2015-04-28 at 16:35 +0300, Andres Gomez wrote:
> Old glsl-deriv-varyings test has been migrated to
> shader_runner and, also, splitted in four
> different tests:
> * glsl-derivs-varyings
> * glsl-derivs-sign
> * glsl-derivs-abs
> * glsl-derivs-abs-sign
> 
> In addition, expectations for the tests involving
> the abs operator have been corrected.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87407
> Signed-off-by: Andres Gomez <agomez at igalia.com>
> ---
>  tests/all.py                                   |   1 -
>  tests/shaders/CMakeLists.gl.txt                |   1 -
>  tests/shaders/glsl-deriv-varyings.c            | 375 -------------------------
>  tests/shaders/glsl-derivs-abs-sign.shader_test |  56 ++++
>  tests/shaders/glsl-derivs-abs.shader_test      |  55 ++++
>  tests/shaders/glsl-derivs-sign.shader_test     |  27 ++
>  tests/shaders/glsl-derivs-varyings.shader_test |  27 ++
>  7 files changed, 165 insertions(+), 377 deletions(-)
>  delete mode 100644 tests/shaders/glsl-deriv-varyings.c
>  create mode 100644 tests/shaders/glsl-derivs-abs-sign.shader_test
>  create mode 100644 tests/shaders/glsl-derivs-abs.shader_test
>  create mode 100644 tests/shaders/glsl-derivs-sign.shader_test
>  create mode 100644 tests/shaders/glsl-derivs-varyings.shader_test
> 
> diff --git a/tests/all.py b/tests/all.py
> index 18124b7..5ada4d9 100755
> --- a/tests/all.py
> +++ b/tests/all.py
> @@ -542,7 +542,6 @@ with profile.group_manager(PiglitGLTest, 'shaders') as g:
>      g(['glsl-vs-statechange-1'])
>      g(['vp-combined-image-units'])
>      g(['glsl-derivs'])
> -    g(['glsl-deriv-varyings'])
>      g(['glsl-fwidth'])
>      g(['glsl-lod-bias'])
>      g(['vp-ignore-input'])
> diff --git a/tests/shaders/CMakeLists.gl.txt b/tests/shaders/CMakeLists.gl.txt
> index 3efc6bf..35b4c6c 100644
> --- a/tests/shaders/CMakeLists.gl.txt
> +++ b/tests/shaders/CMakeLists.gl.txt
> @@ -131,7 +131,6 @@ piglit_add_executable (vp-clipdistance-04 vp-clipdistance-04.c)
>  piglit_add_executable (vpfp-generic vpfp-generic.cpp)
>  piglit_add_executable (vp-max-array vp-max-array.c)
>  piglit_add_executable (glsl-derivs glsl-derivs.c)
> -piglit_add_executable (glsl-deriv-varyings glsl-deriv-varyings.c)
>  piglit_add_executable (glsl-fs-discard-02 glsl-fs-discard-02.c)
>  piglit_add_executable (glsl-fwidth glsl-fwidth.c)
>  piglit_add_executable (glsl-lod-bias glsl-lod-bias.c)
> diff --git a/tests/shaders/glsl-deriv-varyings.c b/tests/shaders/glsl-deriv-varyings.c
> deleted file mode 100644
> index ca663a5..0000000
> --- a/tests/shaders/glsl-deriv-varyings.c
> +++ /dev/null
> @@ -1,375 +0,0 @@
> -/*
> - * Copyright © 2009 Intel Corporation
> - *
> - * Permission is hereby granted, free of charge, to any person obtaining a
> - * copy of this software and associated documentation files (the "Software"),
> - * to deal in the Software without restriction, including without limitation
> - * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> - * and/or sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following conditions:
> - *
> - * The above copyright notice and this permission notice (including the next
> - * paragraph) shall be included in all copies or substantial portions of the
> - * Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> - * DEALINGS IN THE SOFTWARE.
> - */
> -
> -// author: Ben Holmes
> -
> -/*
> - * This test uses the built-in glsl derivative functions (dFdx and dFdy)
> - * on varying values.
> - */
> -
> -#include "piglit-util-gl.h"
> -
> -static void compileLinkProg(void);
> -static void loadTex(void);
> -
> -PIGLIT_GL_TEST_CONFIG_BEGIN
> -
> -	config.supports_gl_compat_version = 10;
> -
> -	config.window_width = 600;
> -	config.window_height = 300;
> -	config.window_visual = PIGLIT_GL_VISUAL_RGB | PIGLIT_GL_VISUAL_DOUBLE;
> -
> -PIGLIT_GL_TEST_CONFIG_END
> -
> -static GLuint tex[1];
> -static GLint prog1;
> -static GLint vs1;
> -static GLint fs1;
> -static GLint prog2;
> -static GLint fs2;
> -static GLint prog3;
> -static GLint fs3;
> -static GLint prog4;
> -static GLint fs4;
> -static GLint prog5;
> -static GLint fs5;
> -
> -
> -static GLfloat verts[12] = {175.0, 125.0, 0.0,
> -			    175.0, 225.0, 0.0,
> -			    125.0, 125.0, 0.0,
> -			    125.0, 225.0, 0.0};
> -
> -static GLfloat texCoords[8] = {1.0, 0.0,
> -				1.0, 1.0,
> -				0.0, 0.0,
> -				0.0, 1.0};
> -
> -
> -static const char *vertShaderText =
> -	"attribute vec2 textureCoords;\n"
> -	"varying vec2 texCoords;\n"
> -	"void main()\n"
> -	"{ \n"
> -	"	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n"
> -	"	texCoords = textureCoords;\n"
> -	"} \n";
> -
> -static const char *fragShaderText =
> -	"uniform sampler2D tex2d;\n"
> -	"varying vec2 texCoords;\n"
> -	"void main()\n"
> -	"{ \n"
> -	"	gl_FragColor = texture2D(tex2d, texCoords);\n"
> -	"} \n";
> -
> -static const char *fragShaderText2 =
> -	"uniform sampler2D tex2d;\n"
> -	"varying vec2 texCoords;\n"
> -	"void main()\n"
> -	"{ \n"
> -	"	gl_FragColor = vec4(dFdx(texCoords.x) * 40.0,\n"
> -	"			    dFdy(texCoords.y) * 40.0,\n"
> -	"			    0.0, 1.0);\n"
> -	"} \n";
> -
> -static const char *fragShaderText3 =
> -	"uniform sampler2D tex2d;\n"
> -	"varying vec2 texCoords;\n"
> -	"void main()\n"
> -	"{ \n"
> -	"	gl_FragColor = vec4(dFdx(-texCoords.x) * -40.0,\n"
> -	"			    dFdy(-texCoords.y) * -40.0,\n"
> -	"			    0.0, 1.0);\n"
> -	"} \n";
> -
> -static const char *fragShaderText4 =
> -	"uniform sampler2D tex2d;\n"
> -	"varying vec2 texCoords;\n"
> -	"void main()\n"
> -	"{ \n"
> -	"	gl_FragColor = vec4(dFdx(abs(-texCoords.x)) * 40.0,\n"
> -	"			    dFdy(abs(-texCoords.y)) * 40.0,\n"
> -	"			    0.0, 1.0);\n"
> -	"} \n";
> -
> -static const char *fragShaderText5 =
> -	"uniform sampler2D tex2d;\n"
> -	"varying vec2 texCoords;\n"
> -	"void main()\n"
> -	"{ \n"
> -	"	gl_FragColor = vec4(dFdx(-abs(texCoords.x)) * -40.0,\n"
> -	"			    dFdy(-abs(texCoords.y)) * -40.0,\n"
> -	"			    0.0, 1.0);\n"
> -	"} \n";
> -
> -
> -
> -void
> -piglit_init(int argc, char **argv)
> -{
> -	piglit_require_gl_version(20);
> -
> -	compileLinkProg();
> -
> -	loadTex();
> -
> -	piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
> -
> -	glEnable(GL_TEXTURE_2D);
> -	glClearColor(0.6, 0.6, 0.6, 1.0);
> -}
> -
> -static void
> -compileLinkProg(void)
> -{
> -	GLint stat;
> -
> -	vs1 = glCreateShader(GL_VERTEX_SHADER);
> -	fs1 = glCreateShader(GL_FRAGMENT_SHADER);
> -
> -	fs2 = glCreateShader(GL_FRAGMENT_SHADER);
> -
> -	fs3 = glCreateShader(GL_FRAGMENT_SHADER);
> -
> -	fs4 = glCreateShader(GL_FRAGMENT_SHADER);
> -
> -	fs5 = glCreateShader(GL_FRAGMENT_SHADER);
> -
> -	glShaderSource(vs1, 1, (const GLchar **) &vertShaderText, NULL);
> -	glShaderSource(fs1, 1, (const GLchar **) &fragShaderText, NULL);
> -	glShaderSource(fs2, 1, (const GLchar **) &fragShaderText2, NULL);
> -	glShaderSource(fs3, 1, (const GLchar **) &fragShaderText3, NULL);
> -	glShaderSource(fs4, 1, (const GLchar **) &fragShaderText4, NULL);
> -	glShaderSource(fs5, 1, (const GLchar **) &fragShaderText5, NULL);
> -
> -	glCompileShader(vs1);
> -	glGetShaderiv(vs1, GL_COMPILE_STATUS, &stat);
> -	if (!stat) {
> -                printf("error compiling vertex shader1!\n");
> -                exit(1);
> -        }
> -
> -	glCompileShader(fs1);
> -	glGetShaderiv(fs1, GL_COMPILE_STATUS, &stat);
> -	if (!stat) {
> -		printf("error compiling fragment shader1!\n");
> -		exit(1);
> -	}
> -
> -	glCompileShader(fs2);
> -	glGetShaderiv(fs2, GL_COMPILE_STATUS, &stat);
> -	if (!stat) {
> -		printf("error compiling fragment shader2!\n");
> -		exit(1);
> -	}
> -
> -	glCompileShader(fs3);
> -	glGetShaderiv(fs3, GL_COMPILE_STATUS, &stat);
> -	if (!stat) {
> -		printf("error compiling fragment shader3!\n");
> -		exit(1);
> -	}
> -
> -	glCompileShader(fs4);
> -	glGetShaderiv(fs4, GL_COMPILE_STATUS, &stat);
> -	if (!stat) {
> -		printf("error compiling fragment shader4!\n");
> -		exit(1);
> -	}
> -
> -	glCompileShader(fs5);
> -	glGetShaderiv(fs5, GL_COMPILE_STATUS, &stat);
> -	if (!stat) {
> -		printf("error compiling fragment shader5!\n");
> -		exit(1);
> -	}
> -
> -
> -	prog1 = glCreateProgram();
> -	glAttachShader(prog1, vs1);
> -	glAttachShader(prog1, fs1);
> -	glBindAttribLocation(prog1, 1, "textureCoords");
> -	glLinkProgram(prog1);
> -	glUseProgram(prog1);
> -
> -	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3*sizeof(GLfloat),
> -                                verts);
> -	glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 2*sizeof(GLfloat),
> -				texCoords);
> -	glEnableVertexAttribArray(0);
> -	glEnableVertexAttribArray(1);
> -
> -
> -	prog2 = glCreateProgram();
> -	glAttachShader(prog2, vs1);
> -	glAttachShader(prog2, fs2);
> -	glBindAttribLocation(prog2, 1, "textureCoords");
> -	glLinkProgram(prog2);
> -	glUseProgram(prog2);
> -
> -	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3*sizeof(GLfloat),
> -                               verts);
> -	glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 2*sizeof(GLfloat),
> -				texCoords);
> -	glEnableVertexAttribArray(0);
> -	glEnableVertexAttribArray(1);
> -
> -
> -	prog3 = glCreateProgram();
> -	glAttachShader(prog3, vs1);
> -	glAttachShader(prog3, fs3);
> -	glBindAttribLocation(prog3, 1, "textureCoords");
> -	glLinkProgram(prog3);
> -	glUseProgram(prog3);
> -
> -	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3*sizeof(GLfloat),
> -                               verts);
> -	glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 2*sizeof(GLfloat),
> -				texCoords);
> -	glEnableVertexAttribArray(0);
> -	glEnableVertexAttribArray(1);
> -
> -
> -	prog4 = glCreateProgram();
> -	glAttachShader(prog4, vs1);
> -	glAttachShader(prog4, fs4);
> -	glBindAttribLocation(prog4, 1, "textureCoords");
> -	glLinkProgram(prog4);
> -	glUseProgram(prog4);
> -
> -	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3*sizeof(GLfloat),
> -                               verts);
> -	glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 2*sizeof(GLfloat),
> -				texCoords);
> -	glEnableVertexAttribArray(0);
> -	glEnableVertexAttribArray(1);
> -
> -
> -	prog5 = glCreateProgram();
> -	glAttachShader(prog5, vs1);
> -	glAttachShader(prog5, fs5);
> -	glBindAttribLocation(prog5, 1, "textureCoords");
> -	glLinkProgram(prog5);
> -	glUseProgram(prog5);
> -
> -	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3*sizeof(GLfloat),
> -                               verts);
> -	glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 2*sizeof(GLfloat),
> -				texCoords);
> -	glEnableVertexAttribArray(0);
> -	glEnableVertexAttribArray(1);
> -}
> -
> -static void
> -loadTex(void)
> -{
> -	#define height 2
> -	#define width 2
> -	int i, j;
> -
> -	GLfloat texData[width][height][4];
> -	for (i=0; i < width; ++i) {
> -		for (j=0; j < height; ++j) {
> -			if ((i+j) & 1) {
> -				texData[i][j][0] = 1;
> -				texData[i][j][1] = 0;
> -				texData[i][j][2] = 1;
> -				texData[i][j][3] = 0;
> -			}
> -			else {
> -				texData[i][j][0] = 0;
> -				texData[i][j][1] = 1;
> -				texData[i][j][2] = 0;
> -				texData[i][j][3] = 1;
> -			}
> -		}
> -	}
> -
> -	glGenTextures(1, tex);
> -	glActiveTexture(GL_TEXTURE0);
> -	glBindTexture(GL_TEXTURE_2D, tex[0]);
> -	glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_FALSE);
> -	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
> -	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
> -	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
> -	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
> -	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0,
> -			GL_RGBA, GL_FLOAT, texData);
> -
> -	#undef height
> -	#undef width
> -}
> -
> -
> -enum piglit_result
> -piglit_display(void)
> -{
> -	GLboolean pass = GL_TRUE;
> -
> -	float deriv[3] = {0.8, 0.4, 0.0};
> -	float green[3] = {0, 1, 0};
> -
> -	glClear(GL_COLOR_BUFFER_BIT);
> -
> -	glPushMatrix();
> -
> -	glUseProgram(prog1);
> -	glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
> -
> -	glTranslatef(75.0, 0.0, 0.0);
> -
> -	glUseProgram(prog2);
> -	glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
> -
> -	glTranslatef(75.0, 0.0, 0.0);
> -
> -	glUseProgram(prog3);
> -	glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
> -
> -	glTranslatef(75.0, 0.0, 0.0);
> -
> -	glUseProgram(prog4);
> -	glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
> -
> -	glTranslatef(75.0, 0.0, 0.0);
> -
> -	glUseProgram(prog5);
> -	glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
> -
> -	glPopMatrix();
> -
> -	pass = pass && piglit_probe_pixel_rgb(132, 125, green);
> -	pass = pass && piglit_probe_pixel_rgb(205, 125, deriv);
> -	pass = pass && piglit_probe_pixel_rgb(280, 125, deriv);
> -	pass = pass && piglit_probe_pixel_rgb(355, 125, deriv);
> -	pass = pass && piglit_probe_pixel_rgb(430, 125, deriv);
> -
> -	glFinish();
> -	piglit_present_results();
> -
> -	return pass ? PIGLIT_PASS : PIGLIT_FAIL;
> -}
> -
> diff --git a/tests/shaders/glsl-derivs-abs-sign.shader_test b/tests/shaders/glsl-derivs-abs-sign.shader_test
> new file mode 100644
> index 0000000..ef6cdbb
> --- /dev/null
> +++ b/tests/shaders/glsl-derivs-abs-sign.shader_test
> @@ -0,0 +1,56 @@
> +[require]
> +GLSL >= 1.10
> +
> +[vertex shader]
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +	gl_Position = gl_Vertex;
> +	xval = gl_Vertex.x;
> +	yval = gl_Vertex.y;
> +}
> +
> +[fragment shader]
> +uniform vec4 arg0;
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +        float xval_sign = sign(xval) == -1.0 ? -1.0 : 1.0;
> +        float yval_sign = sign(yval) == -1.0 ? -1.0 : 1.0;
> +	gl_FragColor = vec4(dFdx(abs(-xval)) *  xval_sign * 20.0,
> +                            dFdy(abs(-yval)) *  yval_sign * 10.0,
> +                            dFdx(-abs(xval)) * -xval_sign * 40.0,
> +                            dFdy(-abs(yval)) * -yval_sign * 30.0);
> +}
> +
> +[test]
> +draw rect -1 -1 2 2
> +
> +probe rgba  16  16 0.16 0.08 0.32 0.24
> +probe rgba  16 167 0.16 0.08 0.32 0.24
> +probe rgba 167  16 0.16 0.08 0.32 0.24
> +probe rgba 167 167 0.16 0.08 0.32 0.24
> +
> +probe rgba   0   0 0.16 0.08 0.32 0.24
> +probe rgba   0 249 0.16 0.08 0.32 0.24
> +probe rgba 249   0 0.16 0.08 0.32 0.24
> +probe rgba 249 249 0.16 0.08 0.32 0.24
> +
> +probe rgba 123 123 0.16 0.08 0.32 0.24
> +probe rgba 124 123 0.00 0.08 0.00 0.24
> +probe rgba 125 123 0.00 0.08 0.00 0.24
> +probe rgba 126 123 0.16 0.08 0.32 0.24
> +probe rgba 123 124 0.16 0.00 0.32 0.00
> +probe rgba 124 124 0.00 0.00 0.00 0.00
> +probe rgba 125 124 0.00 0.00 0.00 0.00
> +probe rgba 126 124 0.16 0.00 0.32 0.00
> +probe rgba 123 125 0.16 0.00 0.32 0.00
> +probe rgba 124 125 0.00 0.00 0.00 0.00
> +probe rgba 125 125 0.00 0.00 0.00 0.00
> +probe rgba 126 125 0.16 0.00 0.32 0.00
> +probe rgba 123 126 0.16 0.08 0.32 0.24
> +probe rgba 124 126 0.00 0.08 0.00 0.24
> +probe rgba 125 126 0.00 0.08 0.00 0.24
> +probe rgba 126 126 0.16 0.08 0.32 0.24
> diff --git a/tests/shaders/glsl-derivs-abs.shader_test b/tests/shaders/glsl-derivs-abs.shader_test
> new file mode 100644
> index 0000000..a6db379
> --- /dev/null
> +++ b/tests/shaders/glsl-derivs-abs.shader_test
> @@ -0,0 +1,55 @@
> +[require]
> +GLSL >= 1.10
> +
> +[vertex shader]
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +	gl_Position = gl_Vertex;
> +	xval = gl_Vertex.x;
> +	yval = gl_Vertex.y;
> +}
> +
> +[fragment shader]
> +uniform vec4 arg0;
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +        float xval_sign = sign(xval) == -1.0 ? -1.0 : 1.0;
> +        float yval_sign = sign(yval) == -1.0 ? -1.0 : 1.0;
> +	gl_FragColor = vec4(dFdx(abs(xval)) * xval_sign * 20.0,
> +                            dFdy(abs(yval)) * yval_sign * 10.0,
> +                            0.0, 1.0);
> +}
> +
> +[test]
> +draw rect -1 -1 2 2
> +
> +probe rgba  16  16 0.16 0.08 0.00 1.00
> +probe rgba  16 167 0.16 0.08 0.00 1.00
> +probe rgba 167  16 0.16 0.08 0.00 1.00
> +probe rgba 167 167 0.16 0.08 0.00 1.00
> +
> +probe rgba   0   0 0.16 0.08 0.00 1.00
> +probe rgba   0 249 0.16 0.08 0.00 1.00
> +probe rgba 249   0 0.16 0.08 0.00 1.00
> +probe rgba 249 249 0.16 0.08 0.00 1.00
> +
> +probe rgba 123 123 0.16 0.08 0.00 1.00
> +probe rgba 124 123 0.00 0.08 0.00 1.00
> +probe rgba 125 123 0.00 0.08 0.00 1.00
> +probe rgba 126 123 0.16 0.08 0.00 1.00
> +probe rgba 123 124 0.16 0.00 0.00 1.00
> +probe rgba 124 124 0.00 0.00 0.00 1.00
> +probe rgba 125 124 0.00 0.00 0.00 1.00
> +probe rgba 126 124 0.16 0.00 0.00 1.00
> +probe rgba 123 125 0.16 0.00 0.00 1.00
> +probe rgba 124 125 0.00 0.00 0.00 1.00
> +probe rgba 125 125 0.00 0.00 0.00 1.00
> +probe rgba 126 125 0.16 0.00 0.00 1.00
> +probe rgba 123 126 0.16 0.08 0.00 1.00
> +probe rgba 124 126 0.00 0.08 0.00 1.00
> +probe rgba 125 126 0.00 0.08 0.00 1.00
> +probe rgba 126 126 0.16 0.08 0.00 1.00
> diff --git a/tests/shaders/glsl-derivs-sign.shader_test b/tests/shaders/glsl-derivs-sign.shader_test
> new file mode 100644
> index 0000000..ce8d7b9
> --- /dev/null
> +++ b/tests/shaders/glsl-derivs-sign.shader_test
> @@ -0,0 +1,27 @@
> +[require]
> +GLSL >= 1.10
> +
> +[vertex shader]
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +	gl_Position = gl_Vertex;
> +	xval = gl_Vertex.x;
> +	yval = gl_Vertex.y;
> +}
> +
> +[fragment shader]
> +uniform vec4 arg0;
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +	gl_FragColor = vec4(dFdx(-xval) * -20.0,
> +                            dFdy(-yval) * -10.0,
> +                            0.0, 1.0);
> +}
> +
> +[test]
> +draw rect -1 -1 2 2
> +probe rgba  16  16 0.16 0.08 0.00 1.00
> diff --git a/tests/shaders/glsl-derivs-varyings.shader_test b/tests/shaders/glsl-derivs-varyings.shader_test
> new file mode 100644
> index 0000000..31b9741
> --- /dev/null
> +++ b/tests/shaders/glsl-derivs-varyings.shader_test
> @@ -0,0 +1,27 @@
> +[require]
> +GLSL >= 1.10
> +
> +[vertex shader]
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +	gl_Position = gl_Vertex;
> +	xval = gl_Vertex.x;
> +	yval = gl_Vertex.y;
> +}
> +
> +[fragment shader]
> +uniform vec4 arg0;
> +varying float xval;
> +varying float yval;
> +void main()
> +{
> +	gl_FragColor = vec4(dFdx(xval) * 20.0,
> +                            dFdy(yval) * 10.0,
> +                            0.0, 1.0);
> +}
> +
> +[test]
> +draw rect -1 -1 2 2
> +probe rgba  16  16 0.16 0.08 0.00 1.00

-- 
Andres Gomez
Computer Science Engineer
mailto:agomez at igalia.com
http://blogs.igalia.com/agomez/category/igaliacom/
IGALIA, S.L. http://www.igalia.com



More information about the Piglit mailing list