max-texture-size: use width=height=2 for glTexSubImage calls

Submitted by Brian Paul on March 1, 2014, 7:20 p.m.

Details

Message ID 1393701659-29057-1-git-send-email-brianp@vmware.com
State New
Headers show

Not browsing as part of any series.

Commit Message

Brian Paul March 1, 2014, 7:20 p.m.
Before, we used maxSide/2 which could be very large, causing us to
allocate large amounts of memory with calloc().  This could sometimes
fail.
---
 tests/texturing/max-texture-size.c |   20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

Patch hide | download patch | download mbox

diff --git a/tests/texturing/max-texture-size.c b/tests/texturing/max-texture-size.c
index 5696337..ef56778 100644
--- a/tests/texturing/max-texture-size.c
+++ b/tests/texturing/max-texture-size.c
@@ -52,6 +52,8 @@  PIGLIT_GL_TEST_CONFIG_BEGIN
 
 PIGLIT_GL_TEST_CONFIG_END
 
+#define SUBTEX_SIZE 2
+
 static const GLenum targets[] = {
 	GL_TEXTURE_1D,
 	GL_TEXTURE_2D,
@@ -322,7 +324,7 @@  test_non_proxy_texture_size(GLenum target, GLenum internalformat)
 	       piglit_get_gl_enum_name(internalformat),
 	       maxSide);
 	/* Allocate and initialize texture data array */
-	pixels = initTexData(target, maxSide/2);
+	pixels = initTexData(target, SUBTEX_SIZE);
 
 	if (pixels == NULL) {
 		printf("Error allocating texture data array for target %s, size %d\n",
@@ -337,7 +339,7 @@  test_non_proxy_texture_size(GLenum target, GLenum internalformat)
 			     0, GL_RGBA, GL_FLOAT, NULL);
 		STOP_ON_ERRORS;
 
-		glTexSubImage1D(target, 0, 0, maxSide/2, GL_RGBA,
+		glTexSubImage1D(target, 0, 0, SUBTEX_SIZE, GL_RGBA,
 				GL_FLOAT, pixels);
 		break;
 
@@ -346,7 +348,7 @@  test_non_proxy_texture_size(GLenum target, GLenum internalformat)
 			     maxSide, 0, GL_RGBA, GL_FLOAT, NULL);
 		STOP_ON_ERRORS;
 
-		glTexSubImage2D(target, 0, 0, 0, maxSide/2, maxSide/2,
+		glTexSubImage2D(target, 0, 0, 0, SUBTEX_SIZE, SUBTEX_SIZE,
 				GL_RGBA, GL_FLOAT, pixels);
 		break;
 
@@ -355,7 +357,7 @@  test_non_proxy_texture_size(GLenum target, GLenum internalformat)
 			     maxSide, 0, GL_RGBA, GL_FLOAT, NULL);
 		STOP_ON_ERRORS;
 
-		glTexSubImage2D(target, 0, 0, 0, maxSide/2, maxSide/2,
+		glTexSubImage2D(target, 0, 0, 0, SUBTEX_SIZE, SUBTEX_SIZE,
 				GL_RGBA, GL_FLOAT, pixels);
 		break;
 
@@ -365,9 +367,9 @@  test_non_proxy_texture_size(GLenum target, GLenum internalformat)
 			     NULL);
 		STOP_ON_ERRORS;
 
-		glTexSubImage3D(target, 0, 0, 0, 0, maxSide/2,
-				maxSide/2, maxSide/2, GL_RGBA,
-				GL_FLOAT, pixels);
+		glTexSubImage3D(target, 0, 0, 0, 0,
+                                SUBTEX_SIZE, SUBTEX_SIZE, SUBTEX_SIZE,
+                                GL_RGBA, GL_FLOAT, pixels);
 		break;
 
 	case GL_TEXTURE_CUBE_MAP_ARB:
@@ -381,8 +383,8 @@  test_non_proxy_texture_size(GLenum target, GLenum internalformat)
 
 		for (k = 0; k < 6; k++) {
 			glTexSubImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + k,
-					0, 0, 0, maxSide/2, maxSide/2, GL_RGBA,
-					GL_FLOAT, pixels);
+					0, 0, 0, SUBTEX_SIZE, SUBTEX_SIZE,
+					GL_RGBA, GL_FLOAT, pixels);
 
 			STOP_ON_ERRORS;
 		}