fbo-mrt-alphatest: Actually require MRTs to be available.
[piglit.git] / tests / security / initialized-vbo.c
blob16656bca0d135c15b0c152a93e6bc5d2ef165740
1 /*
2 * Copyright © 2012 VMware, Inc.
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 * Test that VBO memory is initialized to a constant value and not stale
26 * data that may show previous contents of VRAM.
28 * To pass this test an OpenGL implementation should initialize the
29 * contents of the new buffer to some fixed value (like all zeros).
30 * But since that's not spec'd by OpenGL, we only return WARN instead of
31 * FAIL if that's not the case.
33 * Brian Paul
34 * June 2012
37 #include "piglit-util-gl.h"
39 PIGLIT_GL_TEST_CONFIG_BEGIN
41 config.supports_gl_compat_version = 10;
43 config.window_visual = PIGLIT_GL_VISUAL_RGB | PIGLIT_GL_VISUAL_DOUBLE;
45 PIGLIT_GL_TEST_CONFIG_END
48 enum piglit_result
49 piglit_display(void)
51 GLsizei size = 10 * 1000 * 1000;
52 GLuint buf;
53 GLubyte *tmp = malloc(size);
54 int i;
55 bool pass = true;
57 glGenBuffers(1, &buf);
58 glBindBuffer(GL_ARRAY_BUFFER, buf);
59 glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_STATIC_DRAW);
61 glGetBufferSubData(GL_ARRAY_BUFFER, 0, size, tmp);
63 /* check if all same values */
64 for (i = 1; i < size; i++) {
65 if (tmp[i] != tmp[0]) {
66 pass = false;
67 break;
71 glDeleteBuffers(1, &buf);
73 free(tmp);
74 return pass ? PIGLIT_PASS : PIGLIT_WARN;
78 void
79 piglit_init(int argc, char **argv)
81 piglit_require_extension("GL_ARB_vertex_buffer_object");