From: Marek Olšák <marek.ol...@amd.com>

so that triangle strip winding reset is visible after primitive restart
---
 tests/general/primitive-restart-draw-mode.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tests/general/primitive-restart-draw-mode.c 
b/tests/general/primitive-restart-draw-mode.c
index cca89e385..5a1379748 100644
--- a/tests/general/primitive-restart-draw-mode.c
+++ b/tests/general/primitive-restart-draw-mode.c
@@ -126,34 +126,36 @@ static const struct test_desc
 };
 
 static const struct test_desc *test = NULL;
 
 
 static const char vs_text[] =
        "#version 110\n"
        "attribute vec2 vertex;\n"
        "uniform vec2 offset;\n"
        "uniform vec2 window_size;\n"
-       "uniform vec4 color;\n"
+       "uniform vec4 color, bcolor;\n"
        "void main()\n"
        "{\n"
        "  gl_Position = vec4((vertex + offset) / window_size * 2.0 - 1.0,\n"
        "                     0.0, 1.0);\n"
        "  gl_FrontColor = color;\n"
+       "  gl_BackColor = bcolor;\n"
        "}\n";
 
 
 static GLuint prog;
 static GLint vertex_attr;
 static GLint window_size_loc;
 static GLint offset_loc;
 static GLint color_loc;
+static GLint bcolor_loc;
 
 
 static void
 print_usage_and_exit(const char *prog_name)
 {
        int i;
        printf("Usage: %s <subtest>\n"
               "  where <subtest> is one of the following:\n", prog_name);
        for (i = 0; i < ARRAY_SIZE(tests); i++)
                printf("    %s\n", tests[i].name);
@@ -188,28 +190,33 @@ piglit_init(int argc, char **argv)
 
        vs = piglit_compile_shader_text(GL_VERTEX_SHADER, vs_text);
        prog = piglit_link_simple_program(vs, 0);
        if (!prog)
                piglit_report_result(PIGLIT_FAIL);
        glDeleteShader(vs);
        vertex_attr = glGetAttribLocation(prog, "vertex");
        window_size_loc = glGetUniformLocation(prog, "window_size");
        offset_loc = glGetUniformLocation(prog, "offset");
        color_loc = glGetUniformLocation(prog, "color");
+       bcolor_loc = glGetUniformLocation(prog, "bcolor");
+
+       glEnable(GL_VERTEX_PROGRAM_TWO_SIDE);
 }
 
 
 static void
 draw_pattern(int restart_pos, bool use_primitive_restart)
 {
-       /* Draw test pattern in blue */
+       /* Draw front faces blue and back faces red. */
        glUniform4f(color_loc, 0.25, 0.25, 1.0, 1.0);
+       glUniform4f(bcolor_loc, 0.7, 0.2, 0.2, 1.0);
+
        if (use_primitive_restart) {
                GLubyte index_buffer[NUM_VERTICES + 1];
                int i;
 
                for (i = 0; i < restart_pos; i++) {
                        index_buffer[i] = i;
                }
                index_buffer[restart_pos] = 0xff;
                for (i = restart_pos + 1; i < ARRAY_SIZE(index_buffer); i++) {
                        index_buffer[i] = i - 1;
-- 
2.17.1

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to