This overall extension should probably use piglit_report_subtest_result to provide a faster way to pinpoint problems/errors.
And based on some of the previous messages, the subsequent results reporting are... ( if passed ) piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_1D - Initial value") piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_1D - Error Code") piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_1D - Initial Value (GL_RGB32UI)") piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_1D - Error Code (GL_RGB32UI)") piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_2D - Error Code") piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_2D - Initial value") piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_3D - Error Code") piglit_report_subtest_result(PIGLIT_PASS, "GL_TEXTURE_3D - Initial Value") On Tue, Mar 12, 2013 at 2:12 PM, Brian Paul <[email protected]> wrote: > On 03/12/2013 12:16 PM, Matt Turner wrote: >> >> --- >> tests/spec/CMakeLists.txt | 1 + >> tests/spec/arb_texture_view/CMakeLists.gl.txt | 4 + >> tests/spec/arb_texture_view/CMakeLists.gles3.txt | 7 ++ >> tests/spec/arb_texture_view/CMakeLists.txt | 1 + >> .../arb_texture_view/texture-immutable-levels.c | 111 >> ++++++++++++++++++++ >> 5 files changed, 124 insertions(+), 0 deletions(-) >> create mode 100644 tests/spec/arb_texture_view/CMakeLists.gl.txt >> create mode 100644 tests/spec/arb_texture_view/CMakeLists.gles3.txt >> create mode 100644 tests/spec/arb_texture_view/CMakeLists.txt >> create mode 100644 >> tests/spec/arb_texture_view/texture-immutable-levels.c >> >> diff --git a/tests/spec/CMakeLists.txt b/tests/spec/CMakeLists.txt >> index 18b1d37..05f1784 100644 >> --- a/tests/spec/CMakeLists.txt >> +++ b/tests/spec/CMakeLists.txt >> @@ -28,6 +28,7 @@ add_subdirectory (arb_texture_float) >> add_subdirectory (arb_texture_rectangle) >> add_subdirectory (arb_texture_multisample) >> add_subdirectory (arb_texture_storage) >> +add_subdirectory (arb_texture_view) >> add_subdirectory (arb_timer_query) >> add_subdirectory (arb_transform_feedback2) >> add_subdirectory (ati_envmap_bumpmap) >> diff --git a/tests/spec/arb_texture_view/CMakeLists.gl.txt >> b/tests/spec/arb_texture_view/CMakeLists.gl.txt >> new file mode 100644 >> index 0000000..9e47bb4 >> --- /dev/null >> +++ b/tests/spec/arb_texture_view/CMakeLists.gl.txt >> @@ -0,0 +1,4 @@ >> +link_libraries ( >> + piglitutil_${piglit_target_api} >> +) >> +piglit_add_executable(arb_texture_view-immutable-levels >> texture-immutable-levels.c) >> diff --git a/tests/spec/arb_texture_view/CMakeLists.gles3.txt >> b/tests/spec/arb_texture_view/CMakeLists.gles3.txt >> new file mode 100644 >> index 0000000..aada4e8 >> --- /dev/null >> +++ b/tests/spec/arb_texture_view/CMakeLists.gles3.txt >> @@ -0,0 +1,7 @@ >> +link_libraries( >> + piglitutil_${piglit_target_api} >> + ) >> + >> +piglit_add_executable(texture-immutable-levels_${piglit_target_api} >> texture-immutable-levels.c) >> + >> +# vim: ft=cmake: >> diff --git a/tests/spec/arb_texture_view/CMakeLists.txt >> b/tests/spec/arb_texture_view/CMakeLists.txt >> new file mode 100644 >> index 0000000..144a306 >> --- /dev/null >> +++ b/tests/spec/arb_texture_view/CMakeLists.txt >> @@ -0,0 +1 @@ >> +piglit_include_target_api() >> diff --git a/tests/spec/arb_texture_view/texture-immutable-levels.c >> b/tests/spec/arb_texture_view/texture-immutable-levels.c >> new file mode 100644 >> index 0000000..82e7cd6 >> --- /dev/null >> +++ b/tests/spec/arb_texture_view/texture-immutable-levels.c >> @@ -0,0 +1,111 @@ >> +/* Copyright © 2013 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 >> + * on the rights to use, copy, modify, merge, publish, distribute, sub >> + * license, 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 >> + * NON-INFRINGEMENT. IN NO EVENT SHALL VMWARE AND/OR THEIR SUPPLIERS >> + * 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. >> + */ >> + >> +/** >> + * Tests the TEXTURE_IMMUTABLE_LEVELS parameter. >> + * >> + * The GL ES 3.0 spec says: >> + * >> + * "If the command is successful, TEXTURE_IMMUTABLE_FORMAT becomes >> + * TRUE and TEXTURE_IMMUTABLE_LEVELS becomes levels." >> + * >> + * where<command> is either glTexStorage2D or glTexStorage3D. Desktop GL >> + * with ARB_texture_view (part of GL 4.3) also allows glTexStorage1D. >> + * >> + * Test by calling glTexStorage*D with<levels> = 3,<width>,<height>, and >> + *<depth> = 32; and then confirming that TEXTURE_IMMUTABLE_FORMAT > > > s/FORMAT/LEVELS/ > > > was >> >> + * correctly set to<levels>. >> + */ >> + >> +#include "piglit-util-gl-common.h" >> + >> +PIGLIT_GL_TEST_CONFIG_BEGIN >> + >> + /* ARB_texture_view requires GL 4.2 or ARB_texture_storage, which >> + * requires GL 1.2. >> + */ >> + config.supports_gl_compat_version = 12; >> + config.supports_gl_es_version = 30; >> + >> +PIGLIT_GL_TEST_CONFIG_END >> + >> +enum piglit_result >> +piglit_display(void) >> +{ >> + GLuint tex[3]; >> + GLsizei level; > > > GLint level, since that's what glGetTexParameteriv() returns. > > > >> + >> + /* The GL ES 3.0 spec says: >> + * >> + * "The [initial] value of TEXTURE_IMMUTABLE_LEVELS is 0." >> + */ >> + glGetTexParameteriv(GL_TEXTURE_2D, >> GL_TEXTURE_IMMUTABLE_LEVELS,&level); > > > Also, maybe check that glGetError()==GL_NO_ERROR on this query? > > > >> + if (level != 0) { >> + printf("Expected 0 levels initially, but >> glGetTexParameteriv " >> + "returned %d for GL_TEXTURE_1D.\n", level); >> + piglit_report_result(PIGLIT_FAIL); >> + } >> + >> + glGenTextures(3, tex); >> +#if defined(PIGLIT_USE_OPENGL) >> + glBindTexture(GL_TEXTURE_1D, tex[0]); >> + glTexStorage1D(GL_TEXTURE_1D, 3, GL_RGB32UI, 32); > > > How about using a non-integer internal format so that we don't depend on > GL_EXT_texture_integer? > > >> + glGetTexParameteriv(GL_TEXTURE_1D, >> GL_TEXTURE_IMMUTABLE_LEVELS,&level); >> >> + if (level != 3) { >> + printf("Expected 3 levels, but glGetTexParameteriv >> returned " >> + "%d for GL_TEXTURE_1D.\n", level); >> + piglit_report_result(PIGLIT_FAIL); >> + } >> +#endif >> + >> + glBindTexture(GL_TEXTURE_2D, tex[1]); >> + glTexStorage2D(GL_TEXTURE_2D, 3, GL_RGB32UI, 32, 32); >> + glGetTexParameteriv(GL_TEXTURE_2D, >> GL_TEXTURE_IMMUTABLE_LEVELS,&level); >> + if (level != 3) { >> + printf("Expected 3 levels, but glGetTexParameteriv >> returned " >> + "%d for GL_TEXTURE_2D.\n", level); >> + piglit_report_result(PIGLIT_FAIL); >> + } >> + >> + glBindTexture(GL_TEXTURE_3D, tex[2]); >> + glTexStorage3D(GL_TEXTURE_3D, 3, GL_RGB32UI, 32, 32, 32); >> + glGetTexParameteriv(GL_TEXTURE_3D, >> GL_TEXTURE_IMMUTABLE_LEVELS,&level); > > > Maybe use glGetTexParameterfv() for one of these to exercise that function. > > > >> + if (level != 3) { >> + printf("Expected 3 levels, but glGetTexParameteriv >> returned " >> + "%d for GL_TEXTURE_3D.\n", level); >> + piglit_report_result(PIGLIT_FAIL); >> + } > > > Also, maybe try quering GL_TEXTURE_IMMUTABLE_LEVELS after creating a texture > with regular glTexImage2D() to make sure the value is zero. > > >> + >> + glDeleteTextures(3, tex); >> + >> + piglit_report_result(PIGLIT_PASS); >> + return 0; >> +} >> + >> +void >> +piglit_init(int argc, char **argv) >> +{ >> +#if defined(PIGLIT_USE_OPENGL) >> + piglit_require_extension("GL_ARB_texture_view"); >> +#endif >> +} > > > Looks good otherwise. > > Reviewed-by: Brian Paul <[email protected]> > > _______________________________________________ > Piglit mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
