[Piglit] [PATCH 01/24] tex3d: assorted clean-ups

Jose Fonseca jfonseca at vmware.com
Tue Apr 29 11:05:14 PDT 2014



----- Original Message -----
> Don't call piglit_report_result() - return result from piglit_display().
> Use default window size and fix "row wrapping" to avoid drawing off the
> edge of the window.
> Use bool instead of int.
> Use piglit_get_gl_enum_name().
> Use GLubyte instead of unsigned char.
> Set texture env mode to replace.
> ---
>  tests/texturing/tex3d.c |   69
>  +++++++++++++++++++++++------------------------
>  1 file changed, 33 insertions(+), 36 deletions(-)
> 
> diff --git a/tests/texturing/tex3d.c b/tests/texturing/tex3d.c
> index 05c29a6..0dd72fc 100644
> --- a/tests/texturing/tex3d.c
> +++ b/tests/texturing/tex3d.c
> @@ -32,9 +32,7 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
>  
>  	config.supports_gl_compat_version = 10;
>  
> -	config.window_width = 128;
> -	config.window_height = 128;
> -	config.window_visual = PIGLIT_GL_VISUAL_RGBA;
> +	config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
>  
>  PIGLIT_GL_TEST_CONFIG_END
>  
> @@ -50,17 +48,8 @@ static int nrcomponents(GLenum format)
>  	}
>  }
>  
> -static const char* formatname(GLenum format)
> -{
> -	switch(format) {
> -	case GL_RGBA: return "GL_RGBA";
> -	case GL_RGB: return "GL_RGB";
> -	case GL_ALPHA: return "GL_ALPHA";
> -	default: abort();
> -	}
> -}
> -
> -static void expected_rgba(GLenum format, const unsigned char* texdata,
> unsigned char* expected)
> +static void
> +expected_rgba(GLenum format, const GLubyte *texdata, GLubyte *expected)
>  {
>  	switch(format) {
>  	case GL_RGBA:
> @@ -84,13 +73,15 @@ static void expected_rgba(GLenum format, const unsigned
> char* texdata, unsigned
>  	}
>  }
>  
> -static int render_and_check(int w, int h, int d, GLenum format, float q,
> unsigned char* data, const char* test)
> +static bool
> +render_and_check(int w, int h, int d, GLenum format, float q,
> +		 const GLubyte *data, const char* test)
>  {
>  	int x, y, z;
>  	int layer;
> -	unsigned char* readback;
> -	unsigned char* texp;
> -	unsigned char* readp;
> +	GLubyte *readback;
> +	const GLubyte *texp;
> +	GLubyte *readp;
>  	int ncomp = 0;
>  
>  	glClearColor(0.0, 0.0, 0.0, 0.0);
> @@ -111,18 +102,18 @@ static int render_and_check(int w, int h, int d, GLenum
> format, float q, unsigne
>  			glVertex2f(x, y+h);
>  		glEnd();
>  		x += w;
> -		if (x >= piglit_width) {
> +		if (x + w >= piglit_width) {

Won't this change the behavior?  At a glance it doesn't look like it will do the same thing.

The "use default window size" patches look fine though.

Jose


>  			y += h;
>  			x = 0;
>  		}
>  	}
>  
> -	readback = (unsigned char*)malloc(w*h*d*4);
> +	readback = (GLubyte*)malloc(w*h*d*4);
>  	x = y = 0;
>  	for(layer = 0; layer < d; ++layer) {
>  		glReadPixels(x, y, w, h, GL_RGBA, GL_UNSIGNED_BYTE, readback+layer*w*h*4);
>  		x += w;
> -		if (x >= piglit_width) {
> +		if (x + w >= piglit_width) {
>  			y += h;
>  			x = 0;
>  		}
> @@ -134,7 +125,7 @@ static int render_and_check(int w, int h, int d, GLenum
> format, float q, unsigne
>  	for(z = 0; z < d; ++z) {
>  		for(y = 0; y < h; ++y) {
>  			for(x = 0; x < w; ++x, readp += 4, texp += ncomp) {
> -				unsigned char expected[4];
> +				GLubyte expected[4];
>  				int i;
>  				expected_rgba(format, texp, expected);
>  				for(i = 0; i < 4; ++i) {
> @@ -145,7 +136,7 @@ static int render_and_check(int w, int h, int d, GLenum
> format, float q, unsigne
>  						fprintf(stderr, " Readback: %i,%i,%i,%i\n",
>  							readp[0], readp[1], readp[2], readp[3]);
>  						free(readback);
> -						return 0;
> +						return false;
>  					}
>  				}
>  			}
> @@ -155,7 +146,7 @@ static int render_and_check(int w, int h, int d, GLenum
> format, float q, unsigne
>  
>  	piglit_present_results();
>  
> -	return 1;
> +	return true;
>  }
>  
>  
> @@ -163,12 +154,13 @@ static int render_and_check(int w, int h, int d, GLenum
> format, float q, unsigne
>   * Load non-mipmapped 3D texture of the given size
>   * and check whether it is rendered correctly.
>   */
> -static void test_simple(int w, int h, int d, GLenum format)
> +static bool
> +test_simple(int w, int h, int d, GLenum format)
>  {
>  	int size;
> -	unsigned char *data;
> +	GLubyte *data;
>  	int i;
> -	int success = 1;
> +	bool success = true;
>  
>  	assert(1 <= w && w <= 16);
>  	assert(1 <= h && h <= 16);
> @@ -176,7 +168,7 @@ static void test_simple(int w, int h, int d, GLenum
> format)
>  	assert(format == GL_RGBA || format == GL_RGB || format == GL_ALPHA);
>  
>  	size = w*h*d*nrcomponents(format);
> -	data = (unsigned char*)malloc(size);
> +	data = (GLubyte*)malloc(size);
>  
>  	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
>  
> @@ -194,17 +186,20 @@ static void test_simple(int w, int h, int d, GLenum
> format)
>  	free(data);
>  
>  	if (!success) {
> -		fprintf(stderr, "Failure with texture size %ix%ix%i, format = %s\n",
> -			w, h, d, formatname(format));
> -		piglit_report_result(PIGLIT_FAIL);
> +		fprintf(stderr,
> +			"Failure with texture size %ix%ix%i, format = %s\n",
> +			w, h, d, piglit_get_gl_enum_name(format));
>  	}
> +
> +        return success;
>  }
>  
>  enum piglit_result
>  piglit_display(void)
>  {
> -	GLenum formats[] = { GL_RGBA, GL_RGB, GL_ALPHA };
> +	static const GLenum formats[] = { GL_RGBA, GL_RGB, GL_ALPHA };
>  	int w, h, d, fmt;
> +	bool pass = true;
>  
>  	piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
>  
> @@ -212,13 +207,16 @@ piglit_display(void)
>  		for(w = 1; w <= 16; w *= 2) {
>  			for(h = 1; h <= 16; h *= 2) {
>  				for(d = 1; d <= 16; d *= 2) {
> -					test_simple(w, h, d, formats[fmt]);
> +					pass = test_simple(w, h, d, formats[fmt]);
> +					if (!pass)
> +						goto end;
>  				}
>  			}
>  		}
>  	}
>  
> -	return PIGLIT_PASS;
> +end:
> +	return pass ? PIGLIT_PASS : PIGLIT_FAIL;
>  }
>  
>  void
> @@ -226,10 +224,9 @@ piglit_init(int argc, char **argv)
>  {
>  	piglit_require_gl_version(12);
>  
> -	piglit_automatic = GL_TRUE;
> -
>  	glDisable(GL_DITHER);
>  
>  	glGenTextures(1, &Texture);
>  	glBindTexture(GL_TEXTURE_3D, Texture);
> +	glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
>  }
> --
> 1.7.10.4
> 
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/piglit&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=L38CZQmytNtcKNdGNqkkvBvoL%2BsPDIoGqJg49ARWs6U%3D%0A&s=a3d31f2bf3b38fc3f7ba15b3702af201868f4a059b9115b82563f6efd1c06ce9
> 


More information about the Piglit mailing list