On Sat, Sep 22, 2012 at 2:07 AM, Dave Airlie <[email protected]> wrote: > On Fri, Sep 7, 2012 at 12:52 AM, Brian Paul <[email protected]> wrote: >> On 09/05/2012 09:34 PM, Dave Airlie wrote: >>> >>> From: Dave Airlie<[email protected]> >>> >>> This tests teximage3d returns invalid values for width != height >>> and depth not divisible by 6. >>> >>> Signed-off-by: Dave Airlie<[email protected]> >>> --- >>> .../arb_texture_cube_map_array/CMakeLists.gl.txt | 1 + >>> .../teximage3d-invalid-values.c | 75 >>> ++++++++++++++++++++ >>> 2 files changed, 76 insertions(+), 0 deletions(-) >>> create mode 100644 >>> tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >>> >>> diff --git a/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >>> b/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >>> index c8f90f8..f86cbba 100644 >>> --- a/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >>> +++ b/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >>> @@ -10,3 +10,4 @@ link_libraries ( >>> ) >>> >>> piglit_add_executable (arb_texture_cube_map_array-cubemap cubemap.c) >>> +piglit_add_executable >>> (arb_texture_cube_map_array-teximage3d-invalid-values >>> teximage3d-invalid-values.c) >>> diff --git >>> a/tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >>> b/tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >>> new file mode 100644 >>> index 0000000..dec8f8a >>> --- /dev/null >>> +++ b/tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >>> @@ -0,0 +1,75 @@ >>> +/* Copyright © 2012 Red Hat. >>> + * >>> + * 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 >>> + * the rights to use, copy, modify, merge, publish, distribute, >>> sublicense, >>> + * 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 NONINFRINGEMENT. IN NO EVENT >>> SHALL >>> + * THE AUTHORS OR COPYRIGHT HOLDERS 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. >>> + */ >>> + >>> +/** @file teximage3d-invalid-values >>> + * >>> + * From the GL_ARB_texture_cube_map_array spec: >>> + * >>> + * TexImage3D generates the error INVALID_VALUE if<target> is >>> + * TEXTURE_CUBE_MAP_ARRAY_ARB and<depth> is not a multiple of 6. >>> + * TexImage3D generates the error INVALID_VALUE if<target> is >>> + * TEXTURE_CUBE_MAP_ARRAY_ARB and<width> and<height> are not equal. >>> + */ >>> + >>> +#include "piglit-util-gl-common.h" >>> + >>> +PIGLIT_GL_TEST_MAIN( >>> + 32 /*window_width*/, >>> + 32 /*window_height*/, >>> + GLUT_DOUBLE | GLUT_RGB | GLUT_ALPHA) >>> + >>> +enum piglit_result >>> +piglit_display(void) >>> +{ >>> + return PIGLIT_FAIL; /* UNREACHED */ >>> +} >>> + >>> + >>> +void >>> +piglit_init(int argc, char **argv) >>> +{ >>> + GLuint tex; >>> + char *data = NULL; >>> + >>> + piglit_require_extension("GL_ARB_texture_cube_map_array"); >>> + >>> + glGenTextures(1,&tex); >>> + glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, tex); >>> + >>> + /* multiple of 6 depth tests */ >>> + /* less than 6 */ >>> + glTexImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, 0, GL_RGB, 64, 64, 4, 0, >>> GL_RGB, GL_FLOAT, data); >>> + if (!piglit_check_gl_error(GL_INVALID_VALUE)) >>> + piglit_report_result(PIGLIT_FAIL); >>> + >>> + /* greater than 6 */ >>> + glTexImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, 0, GL_RGB, 64, 64, 14, 0, >>> GL_RGB, GL_FLOAT, data); >>> + if (!piglit_check_gl_error(GL_INVALID_VALUE)) >>> + piglit_report_result(PIGLIT_FAIL); >>> + >>> + /* different w/h */ >>> + glTexImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, 0, GL_RGB, 64, 14, 6, 0, >>> GL_RGB, GL_FLOAT, data); >>> + if (!piglit_check_gl_error(GL_INVALID_VALUE)) >>> + piglit_report_result(PIGLIT_FAIL); >>> + >>> + piglit_report_result(PIGLIT_PASS); >>> +} >> >> >> It might also be worthwhile to test setting a mipmap level > 0 with depth=6 >> (or 12, 18, etc). > > I was trying to stick to explicit new errors introduced in the spec, I > couldn't see where this would fit into that.
My point was to simply test a mipmap level other than zero because Mesa (OpenGL) has some size error-checking code that depends on the mipmap level. It's not a big deal though. -Brian _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
