[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