This fixes attributeless rendering on nvidia's binary driver
and Mesa (as of 1afe3359258a9e89b62c8638761f52d78f6d1cbc).

For example:
 * tests/spec/glsl-1.50/execution/geometry/point-size-out.shader_test

Signed-off-by: Jordan Justen <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77162
Cc: "Fu, Ping" <[email protected]>
Cc: Brian Paul <[email protected]>
---
 tests/shaders/shader_runner.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index 7e4c5b0..a288afa 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -120,6 +120,7 @@ bool vbo_present = false;
 bool link_ok = false;
 bool prog_in_use = false;
 GLchar *prog_err_info = NULL;
+GLuint vao = 0;
 
 enum states {
        none = 0,
@@ -1850,6 +1851,16 @@ program_must_be_in_use(void)
 
 }
 
+void
+bind_vao_if_supported()
+{
+       if (vao == 0 && gl_version.num >= 31) {
+               glGenVertexArrays(1, &vao);
+               glBindVertexArray(vao);
+       }
+}
+
+
 enum piglit_result
 piglit_display(void)
 {
@@ -1924,6 +1935,7 @@ piglit_display(void)
                                       (unsigned long) num_vbo_rows);
                                piglit_report_result(PIGLIT_FAIL);
                        }
+                       bind_vao_if_supported();
                        glDrawArrays(mode, first, count);
                } else if (string_match("disable", line)) {
                        do_enable_disable(line + 7, false);
@@ -2189,12 +2201,7 @@ piglit_init(int argc, char **argv)
        link_and_use_shaders();
        if (link_ok && vertex_data_start != NULL) {
                program_must_be_in_use();
-               if (gl_version.num >= 31) {
-                       GLuint vao;
-
-                       glGenVertexArrays(1, &vao);
-                       glBindVertexArray(vao);
-               }
+               bind_vao_if_supported();
 
                num_vbo_rows = setup_vbo_from_text(prog, vertex_data_start,
                                                   vertex_data_end);
-- 
2.0.0.rc2

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

Reply via email to