[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 13 02:27:26 PDT 2015


This wil land tomorrow so, if anyone is interested on giving it a look,
do it soon.

You have been warned :)

On Wed, 2015-05-06 at 12:40 +0300, Andres Gomez wrote:
> 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