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 <[email protected]>
---
 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

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to