From: Ian Romanick <[email protected]>

On Mesa, all of the GL_DEPTH_STENCIL/GL_DEPTH_STENCIL fail because
GL_INVALID_ENUM instead of GL_INVALID_VALUE.

Signed-off-by: Ian Romanick <[email protected]>
---
 tests/all.tests                                    |  1 +
 .../ext_packed_depth_stencil/CMakeLists.gles1.txt  | 13 ++++++
 .../depth-stencil-texture.c                        | 49 ++++++++++++++++++++++
 3 files changed, 63 insertions(+)
 create mode 100644 tests/spec/ext_packed_depth_stencil/CMakeLists.gles1.txt

diff --git a/tests/all.tests b/tests/all.tests
index ceca3fb..bfffff1 100644
--- a/tests/all.tests
+++ b/tests/all.tests
@@ -2141,6 +2141,7 @@ ext_packed_depth_stencil['DEPTH_STENCIL texture'] = 
concurrent_test('ext_packed_
 oes_packed_depth_stencil = Group()
 spec['OES_packed_depth_stencil'] = oes_packed_depth_stencil
 oes_packed_depth_stencil['DEPTH_STENCIL texture GLES2'] = 
concurrent_test('oes_packed_depth_stencil-depth-stencil-texture_gles2')
+oes_packed_depth_stencil['DEPTH_STENCIL texture GLES1'] = 
concurrent_test('oes_packed_depth_stencil-depth-stencil-texture_gles1')
 
 ext_texture_array = Group()
 spec['EXT_texture_array'] = ext_texture_array
diff --git a/tests/spec/ext_packed_depth_stencil/CMakeLists.gles1.txt 
b/tests/spec/ext_packed_depth_stencil/CMakeLists.gles1.txt
new file mode 100644
index 0000000..ff29733
--- /dev/null
+++ b/tests/spec/ext_packed_depth_stencil/CMakeLists.gles1.txt
@@ -0,0 +1,13 @@
+include_directories(
+       ${GLEXT_INCLUDE_DIR}
+       ${OPENGL_INCLUDE_PATH}
+)
+
+link_libraries (
+       piglitutil_${piglit_target_api}
+       ${OPENGL_gles1_LIBRARY}
+)
+
+piglit_add_executable 
(oes_packed_depth_stencil-depth-stencil-texture_${piglit_target_api} 
depth-stencil-texture.c)
+
+# vim: ft=cmake:
diff --git a/tests/spec/ext_packed_depth_stencil/depth-stencil-texture.c 
b/tests/spec/ext_packed_depth_stencil/depth-stencil-texture.c
index 22c0777..d40d6a6 100644
--- a/tests/spec/ext_packed_depth_stencil/depth-stencil-texture.c
+++ b/tests/spec/ext_packed_depth_stencil/depth-stencil-texture.c
@@ -48,12 +48,23 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
        config.supports_gl_core_version = 31;
 #elif defined PIGLIT_USE_OPENGL_ES2
        config.supports_gl_es_version = 20;
+#elif defined PIGLIT_USE_OPENGL_ES1
+       config.supports_gl_es_version = 11;
 #endif
 
        config.window_visual = PIGLIT_GL_VISUAL_RGBA;
 
 PIGLIT_GL_TEST_CONFIG_END
 
+#if defined PIGLIT_USE_OPENGL_ES1
+#define GL_TEXTURE_CUBE_MAP  GL_TEXTURE_CUBE_MAP_OES
+#define GL_DEPTH_STENCIL     GL_DEPTH_STENCIL_OES
+#define GL_DEPTH24_STENCIL8  GL_DEPTH24_STENCIL8_OES
+#define GL_UNSIGNED_INT_24_8 GL_UNSIGNED_INT_24_8_OES
+#define GL_TEXTURE_3D        0x806F
+#define glTexStorage2D       glTexStorage2DEXT
+#endif
+
 static bool has_texture_3d = false;
 static bool has_texture_cube_map = false;
 static bool has_depth_texture_cube_map = false;
@@ -275,6 +286,7 @@ try_TexImage(GLenum internalFormat)
         * The OpenGL 4.4 spec lists the same error, but it greatly expands
         * the list of valid texture targets.
         */
+#if !defined PIGLIT_USE_OPENGL_ES1
        if (has_texture_3d) {
                glBindTexture(GL_TEXTURE_3D, tex[2]);
                glTexImage3D(GL_TEXTURE_3D, 0, internalFormat,
@@ -282,6 +294,12 @@ try_TexImage(GLenum internalFormat)
                             GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, NULL);
                pass = check_gl_error2(expected_3D_error, alt_3D_error) && pass;
        }
+#else
+       /* Silence "variable ‘expected_3D_error’ set but not used" warnings.
+        */
+       (void) expected_3D_error;
+       (void) alt_3D_error;
+#endif
 
        if (has_texture_cube_map) {
                unsigned i;
@@ -316,6 +334,7 @@ try_TexImage(GLenum internalFormat)
        return pass;
 }
 
+#if !defined PIGLIT_USE_OPENGL_ES1
 static bool
 try_TexStorage(GLenum internalFormat)
 {
@@ -364,11 +383,17 @@ try_TexStorage(GLenum internalFormat)
        glTexStorage2D(GL_TEXTURE_2D, 1, internalFormat, 16, 16);
        pass = piglit_check_gl_error(expected_error) && pass;
 
+#if !defined PIGLIT_USE_OPENGL_ES1
        if (has_texture_3d) {
                glBindTexture(GL_TEXTURE_3D, tex[2]);
                glTexStorage3D(GL_TEXTURE_3D, 1, internalFormat, 8, 8, 8);
                pass = piglit_check_gl_error(expected_3D_error) && pass;
        }
+#else
+       /* Silence "variable ‘expected_3D_error’ set but not used" warnings.
+        */
+       (void) expected_3D_error;
+#endif
 
        if (has_texture_cube_map) {
                glBindTexture(GL_TEXTURE_CUBE_MAP, tex[3]);
@@ -391,6 +416,7 @@ try_TexStorage(GLenum internalFormat)
 
        return pass;
 }
+#endif /* !defined PIGLIT_USE_OPENGL_ES1 */
 
 void piglit_init(int argc, char **argv)
 {
@@ -441,15 +467,38 @@ void piglit_init(int argc, char **argv)
 
        has_texture_storage = piglit_get_gl_version() >= 30
                || piglit_is_extension_supported("GL_EXT_texture_storage");
+#elif defined PIGLIT_USE_OPENGL_ES1
+       piglit_require_extension("GL_OES_packed_depth_stencil");
+
+       has_depth_texture = false;
+
+       has_texture_3d = false;
+
+       has_texture_cube_map =
+               piglit_is_extension_supported("GL_OES_texture_cube_map");
+
+       has_depth_texture_cube_map = false;
+
+       has_texture_storage =
+               piglit_is_extension_supported("GL_EXT_texture_storage");
 #endif
 
        pass = try_TexImage(GL_DEPTH_STENCIL) && pass;
        pass = try_TexImage(GL_DEPTH24_STENCIL8) && pass;
 
+       /* Disable this path for OpenGL ES 1.x because piglit dispatch doesn't
+        * seem to support it yet.
+        */
+#if !defined PIGLIT_USE_OPENGL_ES1
        if (has_texture_storage) {
                pass = try_TexStorage(GL_DEPTH_STENCIL) && pass;
                pass = try_TexStorage(GL_DEPTH24_STENCIL8) && pass;
        }
+#else
+       /* Silence "variable ‘has_texture_storage’ set but not used" warnings.
+        */
+       (void) has_texture_storage;
+#endif
 
        piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
 }
-- 
1.8.1.4

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

Reply via email to