[Piglit] [PATCH 14/14] arb_direct_state_access: Port gettextureimage-formats to OpenGL 2.0
Ian Romanick
idr at freedesktop.org
Wed Sep 9 13:21:07 PDT 2015
From: Ian Romanick <ian.d.romanick at intel.com>
DSA requires OpenGL 2.0, so this requirement is trivial.
I would have ported this directly to core profile / OpenGL 3.1, but the
test makes heavy use of the deprecated glDrawPixels function. The uses
in make_texture_image() should be trivial to remove.
However, I'm not even sure why test_format() uses glDrawPixels. It
seems like just comparing the results from glGetTextureImage for each
mip level should be sufficient. Is the glDrawPixels just to visualize
the result?
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Cc: Brian Paul <brianp at vmware.com>
---
.../spec/arb_direct_state_access/CMakeLists.gl.txt | 2 +-
.../gettextureimage-formats.c | 23 ++++++++--------------
2 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/tests/spec/arb_direct_state_access/CMakeLists.gl.txt b/tests/spec/arb_direct_state_access/CMakeLists.gl.txt
index 9351c66..e5f064d 100644
--- a/tests/spec/arb_direct_state_access/CMakeLists.gl.txt
+++ b/tests/spec/arb_direct_state_access/CMakeLists.gl.txt
@@ -25,7 +25,7 @@ piglit_add_executable (arb_direct_state_access-texture-params texture-params.c)
piglit_add_executable (arb_direct_state_access-copytexturesubimage copytexturesubimage.c dsa-utils.c)
piglit_add_executable (arb_direct_state_access-texture-errors texture-errors.c)
piglit_add_executable (arb_direct_state_access-get-textures get-textures.c)
-piglit_add_executable (arb_direct_state_access-gettextureimage-formats gettextureimage-formats.c)
+piglit_add_executable (arb_direct_state_access-gettextureimage-formats gettextureimage-formats.c dsa-utils.c)
piglit_add_executable (arb_direct_state_access-gettextureimage-luminance gettextureimage-luminance.c)
piglit_add_executable (arb_direct_state_access-gettextureimage-targets gettextureimage-targets.c)
piglit_add_executable (arb_direct_state_access-compressedtextureimage compressedtextureimage.c)
diff --git a/tests/spec/arb_direct_state_access/gettextureimage-formats.c b/tests/spec/arb_direct_state_access/gettextureimage-formats.c
index 72a1bf3..84febe9 100644
--- a/tests/spec/arb_direct_state_access/gettextureimage-formats.c
+++ b/tests/spec/arb_direct_state_access/gettextureimage-formats.c
@@ -31,10 +31,11 @@
#include "piglit-util-gl.h"
#include "../fbo/fbo-formats.h"
+#include "dsa-utils.h"
PIGLIT_GL_TEST_CONFIG_BEGIN
- config.supports_gl_compat_version = 10;
+ config.supports_gl_compat_version = 20;
config.supports_gl_core_version = 31;
config.window_width = 600;
@@ -47,6 +48,7 @@ static const char *TestName = "gettextureimage-formats";
static const GLfloat clearColor[4] = { 0.4, 0.4, 0.4, 0.0 };
static GLuint texture_id;
+static GLuint prog;
static bool init_by_rendering;
#define TEX_SIZE 128
@@ -366,12 +368,13 @@ test_format(const struct test_desc *test,
compute_expected_color(fmt, upperRightTexel, expected, tolerance);
/* Draw with the texture */
- glEnable(GL_TEXTURE_2D);
+ glUseProgram(prog);
+ dsa_set_xform(prog, piglit_width, piglit_height);
#if DO_BLEND
glEnable(GL_BLEND);
#endif
piglit_draw_rect_tex(x, y, w, h, 0.0, 0.0, 1.0, 1.0);
- glDisable(GL_TEXTURE_2D);
+ glUseProgram(0);
glDisable(GL_BLEND);
x += TEX_SIZE + 20;
@@ -379,23 +382,18 @@ test_format(const struct test_desc *test,
level = 0;
while (w > 0) {
/* Get the texture image */
- assert(!glIsEnabled(GL_TEXTURE_2D));
glGetTextureImage(texture_id, level, GL_RGBA,
GL_FLOAT, sizeof(readback),
readback);
- assert(!glIsEnabled(GL_TEXTURE_2D));
/* Draw the texture image */
glWindowPos2iARB(x, y);
#if DO_BLEND
glEnable(GL_BLEND);
#endif
- assert(!glIsEnabled(GL_TEXTURE_2D));
glDrawPixels(w, h, GL_RGBA, GL_FLOAT, readback);
glDisable(GL_BLEND);
- assert(!glIsEnabled(GL_TEXTURE_2D));
-
if (level <= 2) {
GLint rx = x + w-1;
GLint ry = y + h-1;
@@ -505,11 +503,6 @@ piglit_init(int argc, char **argv)
piglit_require_extension("GL_ARB_direct_state_access");
- if ((piglit_get_gl_version() < 14) && !piglit_is_extension_supported("GL_ARB_window_pos")) {
- printf("Requires GL 1.4 or GL_ARB_window_pos");
- piglit_report_result(PIGLIT_SKIP);
- }
-
fbo_formats_init(1, argv, !piglit_automatic);
(void) fbo_formats_display;
@@ -527,9 +520,9 @@ piglit_init(int argc, char **argv)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glClearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3]);
+
+ prog = dsa_create_program(GL_TEXTURE_2D);
}
--
2.1.0
More information about the Piglit
mailing list