[Piglit] [PATCH 3/3] GL 3.2: Test functionality of GetInteger64v()

Ian Romanick idr at freedesktop.org
Thu Aug 8 14:46:25 PDT 2013


On 08/08/2013 01:42 PM, Nicholas Mack wrote:
> ---
>   tests/spec/gl-3.2/CMakeLists.gl.txt |  1 +
>   tests/spec/gl-3.2/get-integer-64v.c | 59 +++++++++++++++++++++++++++++++++++++
>   2 files changed, 60 insertions(+)
>   create mode 100644 tests/spec/gl-3.2/get-integer-64v.c
>
> diff --git a/tests/spec/gl-3.2/CMakeLists.gl.txt b/tests/spec/gl-3.2/CMakeLists.gl.txt
> index 2add6bf..8c34c81 100644
> --- a/tests/spec/gl-3.2/CMakeLists.gl.txt
> +++ b/tests/spec/gl-3.2/CMakeLists.gl.txt
> @@ -12,4 +12,5 @@ link_libraries (
>   piglit_add_executable (gl-3.2-minmax minmax.c)
>   piglit_add_executable (gl-3.2-get-buffer-parameter-i64v get-buffer-parameter-i64v.c)
>   piglit_add_executable (gl-3.2-get-integer-64iv get-integer-64iv.c)
> +piglit_add_executable (gl-3.2-get-integer-64v get-integer-64v.c)
>   # vim: ft=cmake:
> diff --git a/tests/spec/gl-3.2/get-integer-64v.c b/tests/spec/gl-3.2/get-integer-64v.c
> new file mode 100644
> index 0000000..bc1a030
> --- /dev/null
> +++ b/tests/spec/gl-3.2/get-integer-64v.c
> @@ -0,0 +1,59 @@
> +/**
> + * Copyright © 2012 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
> + * 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.
> + */
> +
> +/**
> + * Test GetInteger64v()
> + *
> + * GL 3.2 core spec added GetInteger64v() in section 6.1.1(Simple Queries)
> + *
> + * GetInteger64v() returns an int64 value of the target enum
> + *
> + */
> +
> +#include "piglit-util-gl-common.h"
> +
> +PIGLIT_GL_TEST_CONFIG_BEGIN
> +
> +	config.supports_gl_core_version = 32;
> +	config.supports_gl_compat_version = 32;
> +
> +PIGLIT_GL_TEST_CONFIG_END
> +
> +enum piglit_result
> +piglit_display(void)
> +{
> +	/* UNREACHED */
> +	return PIGLIT_FAIL;
> +}
> +
> +void
> +piglit_init(int argc, char **argv)
> +{
> +	bool pass = true;
> +	GLint64 data = -2;
> +
> +	glGetInteger64v(GL_MAX_SERVER_WAIT_TIMEOUT, &data);
> +	pass = (data > 0) && piglit_check_gl_error(GL_NO_ERROR) && pass;

I'm a bit uneasy about this given the issues we encountered yesterday. 
The extension spec contains this code:

     /* Or to determine the maximum possible wait interval and wait
      * that long, do this instead:
      */
     GLuint64 max_timeout;
     glGetInteger64v(GL_MAX_SERVER_WAIT_TIMEOUT, &max_timeout);
     glWaitSync(sync, 0, max_timeout);

We picked a new value for Mesa that's not negative as int64_t, but I 
don't think the spec actually requires that... especially give this code 
example.  Hmm... I'm not sure what the right answer is.

> +
> +	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
> +}



More information about the Piglit mailing list