From: Ian Romanick <[email protected]>

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 <[email protected]>
Cc: Brian Paul <[email protected]>
---
 .../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 f6dbb45..d749c77 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.window_width = 600;
        config.window_height = 200;
@@ -46,6 +47,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
@@ -365,12 +367,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;
@@ -378,23 +381,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;
@@ -504,11 +502,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;
 
@@ -526,9 +519,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

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to