[Piglit] [PATCH 2/7] texsubimage: Move texture size selection higher in the dispatch
Topi Pohjolainen
topi.pohjolainen at intel.com
Tue Mar 1 10:13:23 UTC 2016
Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
tests/texturing/texsubimage.c | 42 +++++++++++++++++++++++++-----------------
1 file changed, 25 insertions(+), 17 deletions(-)
diff --git a/tests/texturing/texsubimage.c b/tests/texturing/texsubimage.c
index 52a4252..7a5fdc6 100644
--- a/tests/texturing/texsubimage.c
+++ b/tests/texturing/texsubimage.c
@@ -398,11 +398,9 @@ test_region(GLuint pbo, GLenum target, GLenum internal_format,
* \param intFormat the internal texture format
*/
static GLboolean
-test_format(GLenum target, GLenum intFormat)
+test_format(GLenum target, GLenum intFormat,
+ unsigned w, unsigned h, unsigned d)
{
- GLuint w = DEFAULT_TEX_WIDTH;
- GLuint h = DEFAULT_TEX_HEIGHT;
- GLuint d = DEFAULT_TEX_DEPTH;
GLuint tex, i, j, k, n, t;
GLubyte *original_img, *original_ref;
GLubyte *updated_img, *updated_ref;
@@ -414,16 +412,6 @@ test_format(GLenum target, GLenum intFormat)
hMask = ~(bh-1);
dMask = ~0;
- if (target == GL_TEXTURE_CUBE_MAP_ARRAY_ARB) {
- w = h;
- d *= 6;
- } else if (target != GL_TEXTURE_3D && target != GL_TEXTURE_2D_ARRAY) {
- d = 1;
- }
-
- if (target == GL_TEXTURE_1D)
- h = 1;
-
original_img = (GLubyte *) malloc(w * h * d * 4);
original_ref = (GLubyte *) malloc(w * h * d * 4);
updated_img = (GLubyte *) malloc(w * h * d * 4);
@@ -520,7 +508,7 @@ test_format(GLenum target, GLenum intFormat)
* texture target.
*/
static GLboolean
-test_formats(GLenum target)
+test_formats(GLenum target, unsigned w, unsigned h, unsigned d)
{
GLboolean pass = GL_TRUE;
GLuint program = 0;
@@ -574,7 +562,8 @@ test_formats(GLenum target)
/* loop over formats in the set */
for (j = 0; j < set->num_formats; j++) {
if (!test_format(target,
- set->format[j].internalformat)) {
+ set->format[j].internalformat,
+ w, h, d)) {
pass = GL_FALSE;
}
}
@@ -590,6 +579,20 @@ test_formats(GLenum target)
return pass;
}
+static void
+adjust_tex_dimensions(GLenum target, unsigned *w, unsigned *h, unsigned *d)
+{
+ if (target == GL_TEXTURE_CUBE_MAP_ARRAY_ARB) {
+ *w = *h;
+ *d *= 6;
+ } else if (target != GL_TEXTURE_3D &&
+ target != GL_TEXTURE_2D_ARRAY) {
+ *d = 1;
+ }
+
+ if (target == GL_TEXTURE_1D)
+ *h = 1;
+}
enum piglit_result
piglit_display(void)
@@ -599,7 +602,12 @@ piglit_display(void)
/* Loop over 1/2/3D texture targets */
for (i = 0; test_targets[i] != GL_NONE; i++) {
- pass = test_formats(test_targets[i]) && pass;
+ unsigned w = DEFAULT_TEX_WIDTH;
+ unsigned h = DEFAULT_TEX_HEIGHT;
+ unsigned d = DEFAULT_TEX_DEPTH;
+
+ adjust_tex_dimensions(test_targets[i], &w, &h, &d);
+ pass = test_formats(test_targets[i], w, h, d) && pass;
}
return pass ? PIGLIT_PASS : PIGLIT_FAIL;
--
2.5.0
More information about the Piglit
mailing list