From ffb8ae06ea13cceaa1902d162fdbdef313133950 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 18 Apr 2013 14:14:41 -0600 Subject: add a simple glinfo "test" program MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When doing a full piglit run it's helpful to have all the OpenGL driver version/vendor/extension info. The piglit framework tries to run glxinfo/wglinfo and include the output in the results file, but sometimes those programs aren't installed. Reviewed-by: José Fonseca Reviewed-by Tom Gall --- tests/general/CMakeLists.gl.txt | 1 + tests/general/glinfo.c | 92 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 tests/general/glinfo.c (limited to 'tests/general') diff --git a/tests/general/CMakeLists.gl.txt b/tests/general/CMakeLists.gl.txt index e1eb3e3f..0e87baa7 100644 --- a/tests/general/CMakeLists.gl.txt +++ b/tests/general/CMakeLists.gl.txt @@ -67,6 +67,7 @@ ENDIF (UNIX) piglit_add_executable (getactiveattrib getactiveattrib.c) piglit_add_executable (geterror-inside-begin geterror-inside-begin.c) piglit_add_executable (geterror-invalid-enum geterror-invalid-enum.c) +piglit_add_executable (glinfo glinfo.c) piglit_add_executable (gl30basic gl30basic.c) piglit_add_executable (hiz hiz.c) if (UNIX) diff --git a/tests/general/glinfo.c b/tests/general/glinfo.c new file mode 100644 index 00000000..b60ae6d4 --- /dev/null +++ b/tests/general/glinfo.c @@ -0,0 +1,92 @@ +/* + * Copyright © 2013 VMware, Inc. + * + * 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. + */ + +/** + * Simply query and print various glGetString() values. + * This is helpful when running a complete piglit run since the + * results file will have all the pertinant info for the GL driver + * that was tested. + * + * Note that the piglit framework tries to run glxinfo/wglinfo and + * put the output in the results file, but sometimes those programs + * aren't installed. + * + * Brian Paul + * April 2013 + */ + + +#include "piglit-util-gl-common.h" + + +PIGLIT_GL_TEST_CONFIG_BEGIN + config.supports_gl_compat_version = 10; + config.window_visual = PIGLIT_GL_VISUAL_RGB; +PIGLIT_GL_TEST_CONFIG_END + + +enum piglit_result +piglit_display(void) +{ + return PIGLIT_PASS; +} + + +void +piglit_init(int argc, char **argv) +{ + const char *renderer = (const char *) glGetString(GL_RENDERER); + const char *version = (const char *) glGetString(GL_VERSION); + const char *vendor = (const char *) glGetString(GL_VENDOR); + + printf("GL_RENDERER = %s\n", renderer); + printf("GL_VERSION = %s\n", version); + printf("GL_VENDOR = %s\n", vendor); + + if (version[0] >= '2') { + printf("GL_SHADING_LANGUAGE_VERSION = %s\n", (const char *) + glGetString(GL_SHADING_LANGUAGE_VERSION)); + } + + printf("Extensions:\n"); + if (version[0] >= '3') { + GLint numExt, i; + glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); + for (i = 0; i < numExt; i++) { + printf("%s\n", (const char *) + glGetStringi(GL_EXTENSIONS, i)); + } + } + else { + const char *ext = (const char *) glGetString(GL_EXTENSIONS); + const char *c = ext; + for (c = ext; *c; c++) { + if (*c == ' ') + putchar('\n'); + else + putchar(*c); + } + } + + piglit_report_result(PIGLIT_PASS); +} -- cgit v1.2.3