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
