This command initializes the specified number of atomic counters all
containing an initial value of 0.

For example, 'atomic counters 2' creates an zeroed 8 byte buffer
for 2 atomic counters.

Signed-off-by: Jordan Justen <[email protected]>
---
 tests/shaders/shader_runner.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index 85a0b98..4babd36 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -113,6 +113,7 @@ GLuint *uniform_block_bos;
 GLenum geometry_layout_input_type = GL_TRIANGLES;
 GLenum geometry_layout_output_type = GL_TRIANGLE_STRIP;
 GLint geometry_layout_vertices_out = 0;
+GLuint atomics_bo = 0;
 
 char *shader_string;
 GLint shader_string_size;
@@ -2005,7 +2006,15 @@ piglit_display(void)
 
                line = eat_whitespace(line);
 
-               if (string_match("clear color", line)) {
+               if (sscanf(line, "atomic counters %d", &x) == 1) {
+                       GLuint *atomics_buf = calloc(x, sizeof(GLuint));
+                       glGenBuffers(1, &atomics_bo);
+                       glBindBufferBase(GL_ATOMIC_COUNTER_BUFFER, 0, 
atomics_bo);
+                       glBufferData(GL_ATOMIC_COUNTER_BUFFER,
+                                    sizeof(GLuint) * x,
+                                    atomics_buf, GL_STATIC_DRAW);
+                       free(atomics_buf);
+               } else if (string_match("clear color", line)) {
                        get_floats(line + 11, c, 4);
                        glClearColor(c[0], c[1], c[2], c[3]);
                        clear_bits |= GL_COLOR_BUFFER_BIT;
-- 
2.0.0.rc4

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to