[Piglit] [PATCH] arb_texture_cube_map_array: scale texcoords

Chris Forbes chrisf at ijw.co.nz
Sun Sep 8 02:10:19 PDT 2013


The magnitude of the vector formed by the first three texcoords
should not affect the result.

This turns out to be a significant edge case in the i965 driver,
which normalizes the coords such that the largest component does not
exceed [-1..1], but currently bogusly multiplies the fourth coord
[the array index] as well.

Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
---
 tests/spec/arb_texture_cube_map_array/cubemap.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tests/spec/arb_texture_cube_map_array/cubemap.c b/tests/spec/arb_texture_cube_map_array/cubemap.c
index 320f6dc..b1c5bb4 100644
--- a/tests/spec/arb_texture_cube_map_array/cubemap.c
+++ b/tests/spec/arb_texture_cube_map_array/cubemap.c
@@ -39,6 +39,8 @@
 
 #define NUM_LAYERS 2
 
+#define COORD_SCALE 0.5
+
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
     config.supports_gl_compat_version = 10;
@@ -68,10 +70,12 @@ GLfloat a_cube_face_texcoords[6][4][4];
 
 void setup_texcoords(void)
 {
-	int i, j;
+	int i, j, k;
 	for (i = 0; i < 6; i++) {
 		for (j = 0; j < 4; j++) {
-			memcpy(a_cube_face_texcoords[i][j], cube_face_texcoords[i][j], 3 * sizeof(GLfloat));
+			for (k = 0; k < 3; k++) {
+				a_cube_face_texcoords[i][j][k] = COORD_SCALE * cube_face_texcoords[i][j][k];
+			}
 		}
 	}
 }
-- 
1.8.4



More information about the Piglit mailing list