ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_provoking_vertex / quads-follow-provoking-vertex.c
blobb3e46388342f1965d45c6eb9d9bf4c45ed8b6abe
1 /**
2 * Copyright © 2013 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 * IN THE SOFTWARE.
24 /**
25 * QUADS_FOLLOW_PROVOKING_VERTEX was erringly added to GL 3.2 core spec
27 * This was removed from the core spec in 3.3.
29 * Table 6.45 of GL 3.2 core spec includes QUADS_FOLLOW_PROVOKING_VERTEX
30 * which can be queried with GetBooleanv() to see "Whether quads follow
31 * provoking vertex convention"
35 #include "piglit-util-gl.h"
37 PIGLIT_GL_TEST_CONFIG_BEGIN
39 config.supports_gl_core_version = 32;
40 config.khr_no_error_support = PIGLIT_HAS_ERRORS;
42 PIGLIT_GL_TEST_CONFIG_END
44 void
45 piglit_init(int argc, char **argv)
47 bool pass = true;
48 GLboolean followsProvoking = false;
49 GLint major, minor, profile;
50 GLenum expected_error;
52 glGetIntegerv(GL_MAJOR_VERSION, &major);
53 glGetIntegerv(GL_MINOR_VERSION, &minor);
54 printf("GL version: %d.%d\n", major, minor);
56 glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &profile);
57 printf("GL profile: 0x%x\n", profile);
59 if ((profile & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) ||
60 major * 10 + minor == 32) {
61 expected_error = GL_NO_ERROR;
62 } else {
63 expected_error = GL_INVALID_ENUM;
66 glGetBooleanv(GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
67 &followsProvoking);
69 pass = piglit_check_gl_error(expected_error) && pass;
71 piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
74 enum piglit_result
75 piglit_display(void)
77 return PIGLIT_FAIL;