diff options
author | Laura Ekstrand <laura@jlekstrand.net> | 2014-12-05 14:30:09 -0800 |
---|---|---|
committer | Laura Ekstrand <laura@jlekstrand.net> | 2014-12-05 14:30:09 -0800 |
commit | 79eae13a1aed505c562d90ea4afaf9c64f34754c (patch) | |
tree | d9c263aca89612cef9530a441eb1d7b5e6b01df1 | |
parent | a0d63e86ca05ad3c0522c274b7f7646bb230d107 (diff) |
arb_direct_state_access: Organized tests.dsa
-rw-r--r-- | tests/all.py | 3 | ||||
-rw-r--r-- | tests/spec/arb_direct_state_access/dsa.sh | 15 | ||||
-rw-r--r-- | tests/spec/arb_direct_state_access/getcompressedtextureimage_old.c | 279 |
3 files changed, 3 insertions, 294 deletions
diff --git a/tests/all.py b/tests/all.py index 5c2345d79..fc61fc3af 100644 --- a/tests/all.py +++ b/tests/all.py @@ -4258,6 +4258,9 @@ spec['ARB_direct_state_access']['gettextureimage-luminance'] = PiglitGLTest('arb spec['ARB_direct_state_access']['gettextureimage-simple'] = PiglitGLTest('arb_direct_state_access-gettextureimage-simple', run_concurrent=True) spec['ARB_direct_state_access']['gettextureimage-targets'] = PiglitGLTest('arb_direct_state_access-gettextureimage-targets', run_concurrent=True) spec['ARB_direct_state_access']['compressedtextureimage'] = PiglitGLTest('arb_direct_state_access-compressedtextureimage', run_concurrent=True) +spec['ARB_direct_state_access']['getcompressedtextureimage'] = PiglitGLTest('arb_direct_state_access-getcompressedtextureimage', run_concurrent=True) +spec['ARB_direct_state_access']['texture-buffer'] = PiglitGLTest('arb_direct_state_access-texture-buffer', run_concurrent=True) +spec['ARB_direct_state_access']['texture-storage-multisample'] = PiglitGLTest('arb_direct_state_access-texture-storage-multisample', run_concurrent=True) profile.tests['hiz'] = hiz profile.tests['fast_color_clear'] = fast_color_clear diff --git a/tests/spec/arb_direct_state_access/dsa.sh b/tests/spec/arb_direct_state_access/dsa.sh deleted file mode 100644 index 42367204d..000000000 --- a/tests/spec/arb_direct_state_access/dsa.sh +++ /dev/null @@ -1,15 +0,0 @@ -#! /bin/bash -../mesa-run bin/arb_direct_state_access-bind-texture-unit -auto -fbo -../mesa-run bin/arb_direct_state_access-create-textures -auto -fbo -../mesa-run bin/arb_direct_state_access-copytexturesubimage -auto -fbo -../mesa-run bin/arb_direct_state_access-dsa-textures -auto -fbo -../mesa-run bin/arb_direct_state_access-get-textures -auto -fbo -../mesa-run bin/arb_direct_state_access-gettextureimage-formats -auto -fbo -../mesa-run bin/arb_direct_state_access-gettextureimage-luminance -auto -fbo -../mesa-run bin/arb_direct_state_access-gettextureimage-simple -auto -fbo -../mesa-run bin/arb_direct_state_access-gettextureimage-targets -auto -fbo -../mesa-run bin/arb_direct_state_access-texture-errors -auto -fbo -../mesa-run bin/arb_direct_state_access-texture-params -auto -fbo -../mesa-run bin/arb_direct_state_access-texture-storage -auto -fbo -../mesa-run bin/arb_direct_state_access-texturesubimage -auto -fbo -../mesa-run bin/arb_direct_state_access-texunits -auto -fbo diff --git a/tests/spec/arb_direct_state_access/getcompressedtextureimage_old.c b/tests/spec/arb_direct_state_access/getcompressedtextureimage_old.c deleted file mode 100644 index d3e33ab74..000000000 --- a/tests/spec/arb_direct_state_access/getcompressedtextureimage_old.c +++ /dev/null @@ -1,279 +0,0 @@ -/* - * Copyright © 2012 Marek Olšák <maraeo@gmail.com> - * Copyright © 2014 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** - * @file getcompressedtextureimage-targets.c - * - * Adapted for testing glGetCompressedTextureImage in ARB_direct_state_access - * by Laura Ekstrand <laura@jlekstrand.net>, November 2014. - */ - -#include "piglit-util-gl.h" - -PIGLIT_GL_TEST_CONFIG_BEGIN - - config.supports_gl_compat_version = 10; - - config.window_visual = PIGLIT_GL_VISUAL_RGBA | - PIGLIT_GL_VISUAL_DOUBLE; - -PIGLIT_GL_TEST_CONFIG_END - -#define IMAGE_WIDTH 32 -#define IMAGE_HEIGHT 32 -#define IMAGE_SIZE (IMAGE_WIDTH * IMAGE_HEIGHT * 4) - -static void -init_layer_data(GLubyte *layer_data, int num_layers) -{ - int x, y, z, i, j; - - for (z = 0; z < num_layers; z++) { - GLubyte *data = layer_data + IMAGE_SIZE * z; - - for (x = 0; x < IMAGE_WIDTH; x += 4) { - for (y = 0; y < IMAGE_HEIGHT; y += 4) { - int r = (x + 1) * 255 / (IMAGE_WIDTH - 1); - int g = (y + 1) * 255 / (IMAGE_HEIGHT - 1); - int b = (z + 1) * 255 / (num_layers - 1); - int a = x ^ y ^ z; - - /* each 4x4 block constains only one color (for S3TC) */ - for (i = 0; i < 4; i++) { - for (j = 0; j < 4; j++) { - data[((y + j) * IMAGE_WIDTH + x - + i) * 4 + 0] = r; - data[((y + j) * IMAGE_WIDTH + x - + i) * 4 + 1] = g; - data[((y + j) * IMAGE_WIDTH + x - + i) * 4 + 2] = b; - data[((y + j) * IMAGE_WIDTH + x - + i) * 4 + 3] = a; - } - } - } - } - } -} - -static bool -compare_layer(int layer, int num_elements, int tolerance, - GLubyte *data, GLubyte *expected) -{ - int i; - - for (i = 0; i < num_elements; ++i) { - if (abs((int)data[i] - (int)expected[i]) > tolerance) { - printf("GetCompressedTextureImage() returns incorrect" - " data in byte %i for layer %i\n", - i, layer); - printf(" corresponding to (%i,%i), channel %i\n", - (i / 4) / IMAGE_WIDTH, (i / 4) % IMAGE_HEIGHT, - i % 4); - printf(" expected: %i\n", expected[i]); - printf(" got: %i\n", data[i]); - return false; - } - } - return true; -} - -static bool -getTexImage(bool doPBO, GLenum target, GLubyte data[][IMAGE_SIZE], - GLenum internalformat, int tolerance) -{ - int i; - int num_layers=1, num_faces=1, layer_size; - GLubyte data2[18][IMAGE_SIZE]; - GLubyte *dataGet; - GLuint packPBO; - bool pass = true; - GLuint name; - - switch (target) { - /* These are all targets that can be compressed according to - * _mesa_target_can_be_compressed */ - case GL_TEXTURE_2D: - glCreateTextures(target, 1, &name); - glTextureStorage2D(name, 1, internalformat, IMAGE_WIDTH, - IMAGE_HEIGHT); - glTextureSubImage2D(name, 0, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, - GL_RGBA, GL_UNSIGNED_BYTE, data); - layer_size = IMAGE_SIZE; - break; - - case GL_TEXTURE_CUBE_MAP: - num_faces = 6; - glCreateTextures(target, 1, &name); - /* This is invalid. You must use 2D storage call for cube. */ - glTextureStorage3D(name, 1, internalformat, - IMAGE_WIDTH, IMAGE_HEIGHT, num_faces); - pass &= piglit_check_gl_error(GL_INVALID_ENUM); - glTextureStorage2D(name, 1, internalformat, - IMAGE_WIDTH, IMAGE_HEIGHT); - /* This is legal. */ - glTextureSubImage3D(name, 0, 0, 0, 0, IMAGE_WIDTH, - IMAGE_HEIGHT, num_faces, GL_RGBA, - GL_UNSIGNED_BYTE, data); - layer_size = IMAGE_SIZE; - break; - - case GL_TEXTURE_2D_ARRAY: - num_layers = 7; /* Fall through. */ - case GL_TEXTURE_CUBE_MAP_ARRAY: - num_layers = 6 * 3; - glCreateTextures(target, 1, &name); - glTextureStorage3D(name, 1, internalformat, IMAGE_WIDTH, - IMAGE_HEIGHT, num_layers); - glTextureSubImage3D(name, 0, 0, 0, 0, - IMAGE_WIDTH, IMAGE_HEIGHT, num_layers, - GL_RGBA, GL_UNSIGNED_BYTE, data); - layer_size = IMAGE_SIZE; - break; - - default: - puts("Invalid texture target."); - return false; - - } - - /* Setup the PBO or data array to read into from glGetTextureImage */ - if (doPBO) { - glGenBuffers(1, &packPBO); - glBindBuffer(GL_PIXEL_PACK_BUFFER, packPBO); - glBufferData(GL_PIXEL_PACK_BUFFER, - layer_size * num_faces * num_layers, - NULL, GL_STREAM_READ); - } else { - glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); - memset(data2, 123, sizeof(data2)); - } - pass = piglit_check_gl_error(GL_NO_ERROR) && pass; - assert(num_layers * num_faces * layer_size <= sizeof(data2)); - - if (doPBO) { - glGetCompressedTextureImage(name, 0, - layer_size * num_faces * num_layers, NULL); - } - else { - glGetCompressedTextureImage(name, 0, - layer_size * num_faces * num_layers, - data2); - } - pass = piglit_check_gl_error(GL_NO_ERROR) && pass; - - if (doPBO) - dataGet = (GLubyte *) glMapBufferRange( - GL_PIXEL_PACK_BUFFER, 0, - layer_size * num_layers * - num_faces, - GL_MAP_READ_BIT); - else - dataGet = data2[0]; - - for (i = 0; i < num_faces * num_layers; i++) { - pass = compare_layer(i, layer_size, tolerance, dataGet, - data[i]) && pass; - dataGet += layer_size; - } - - if (doPBO) { - glUnmapBuffer(GL_PIXEL_PACK_BUFFER); - glDeleteBuffers(1, &packPBO); - } - - glDeleteTextures(1, &name); - - return pass; -} - -struct target_and_mask { - GLenum target; - bool mask; -}; - -static struct target_and_mask targets[] = { - {GL_TEXTURE_2D, 1}, - {GL_TEXTURE_CUBE_MAP, 1}, - {GL_TEXTURE_2D_ARRAY, 1}, - {GL_TEXTURE_CUBE_MAP_ARRAY, 1}, -}; - -static void -clear_target_mask(GLenum target) -{ - int i; - for (i = 0; i < ARRAY_SIZE(targets); ++i) { - if (targets[i].target == target) { - targets[i].mask = 0; - } - } -} - -void -piglit_init(int argc, char **argv) -{ - piglit_require_extension("GL_ARB_direct_state_access"); - - if (!piglit_is_extension_supported("GL_ARB_texture_cube_map")) - clear_target_mask(GL_TEXTURE_CUBE_MAP); - if (!piglit_is_extension_supported("GL_EXT_texture_array")) { - clear_target_mask(GL_TEXTURE_2D_ARRAY); - } - if (!piglit_is_extension_supported("GL_ARB_texture_cube_map_array")) - clear_target_mask(GL_TEXTURE_CUBE_MAP_ARRAY); -} - -enum piglit_result -piglit_display(void) -{ - int i; - bool pass = true; - GLenum internalformat = GL_COMPRESSED_RGBA_FXT1_3DFX; - int tolerance = 8; - GLubyte data[18][IMAGE_SIZE]; - - piglit_require_extension("GL_3DFX_texture_compression_FXT1"); - init_layer_data(data[0], 18); - - for (i = 0; i < ARRAY_SIZE(targets); ++i) { - if (!targets[i].mask) - continue; - - printf("Testing %s into PBO\n", - piglit_get_gl_enum_name(targets[i].target)); - pass &= getTexImage(true, targets[i].target, data, - internalformat, tolerance); - - printf("Testing %s into client array\n", - piglit_get_gl_enum_name(targets[i].target)); - pass &= getTexImage(false, targets[i].target, data, - internalformat, tolerance); - - pass &= piglit_check_gl_error(GL_NO_ERROR); - } - - return pass ? PIGLIT_PASS : PIGLIT_FAIL; -} - |