summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaura Ekstrand <laura@jlekstrand.net>2014-12-05 14:30:09 -0800
committerLaura Ekstrand <laura@jlekstrand.net>2014-12-05 14:30:09 -0800
commit79eae13a1aed505c562d90ea4afaf9c64f34754c (patch)
treed9c263aca89612cef9530a441eb1d7b5e6b01df1
parenta0d63e86ca05ad3c0522c274b7f7646bb230d107 (diff)
arb_direct_state_access: Organized tests.dsa
-rw-r--r--tests/all.py3
-rw-r--r--tests/spec/arb_direct_state_access/dsa.sh15
-rw-r--r--tests/spec/arb_direct_state_access/getcompressedtextureimage_old.c279
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;
-}
-