[Piglit] [PATCH 2/4] framebuffer-blit-levels: fix off-by-one error.

Paul Berry stereotype441 at gmail.com
Wed Sep 5 14:59:32 PDT 2012


Previously, the test made the erroneous assumption that if the size of
a texture is 2^n, then that texture has n miplevels.  This was
wrong--the texture has n+1 miplevels, ranging in size from 2^n to 2^0.
---
 .../framebuffer-blit-levels.c                      |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/tests/spec/arb_framebuffer_object/framebuffer-blit-levels.c b/tests/spec/arb_framebuffer_object/framebuffer-blit-levels.c
index 16680c4..eb951bc 100644
--- a/tests/spec/arb_framebuffer_object/framebuffer-blit-levels.c
+++ b/tests/spec/arb_framebuffer_object/framebuffer-blit-levels.c
@@ -80,6 +80,7 @@ GLenum framebuffer_attachment;
 
 #define LOG2_SIZE 7
 #define SIZE (1 << LOG2_SIZE)
+#define NUM_LEVELS (LOG2_SIZE + 1)
 
 /**
  * Generate a block of test data in which each pixel has a unique RGBA
@@ -195,7 +196,7 @@ piglit_init(int argc, char **argv)
 			GL_NEAREST);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
 			GL_NEAREST);
-	for (level = 0; level < LOG2_SIZE; ++level) {
+	for (level = 0; level < NUM_LEVELS; ++level) {
 		glTexImage2D(GL_TEXTURE_2D, level,
 			     texture_internal_format,
 			     SIZE >> level, SIZE >> level,
@@ -228,7 +229,7 @@ piglit_display()
 	unsigned level;
 
 	/* Populate the test texture */
-	for (level = 0; level < LOG2_SIZE; ++level) {
+	for (level = 0; level < NUM_LEVELS; ++level) {
 		unsigned width = SIZE >> level;
 		unsigned height = SIZE >> level;
 		create_test_data(data, texture_format, level, width, height);
@@ -263,7 +264,7 @@ piglit_display()
 	}
 
 	/* Verify the test texture */
-	for (level = 0; level < LOG2_SIZE; ++level) {
+	for (level = 0; level < NUM_LEVELS; ++level) {
 		unsigned width = SIZE >> level;
 		unsigned height = SIZE >> level;
 		printf("Testing level %d\n", level);
-- 
1.7.7.6



More information about the Piglit mailing list