Hello Rob,

FWIW this is
Tested-by: Dieter Nützel <[email protected]>

on radeonsi/RX580 (my first on new GREAT hardware) ;-)
But 'glmark2 -b ideas' worked for me on radeonsi without this.

Greetings,
Dieter

Am 08.05.2017 22:37, schrieb Rob Clark:
Fixes: c3f37e9b ("st/mesa: use min_index and max_index directly from vbo")
Signed-off-by: Rob Clark <[email protected]>
---
I haven't had a chance to piglit this yet, but it does fix the
regression w/ 'glmark2 -b ideas'.

 src/mesa/vbo/vbo_exec_array.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index 0fcaefe..437d260 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -855,6 +855,11 @@ vbo_validated_drawrangeelements(struct gl_context
*ctx, GLenum mode,
    struct _mesa_index_buffer ib;
    struct _mesa_prim prim;

+   if (!index_bounds_valid) {
+      assert(start == 0u);
+      assert(end == ~0u);
+   }
+
    if (skip_draw_elements(ctx, count, indices))
       return;

@@ -999,6 +1004,11 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum
mode, GLuint start, GLuint end,
    (void) check_draw_elements_data;
 #endif

+   if (!index_bounds_valid) {
+      start = 0;
+      end = ~0;
+   }
+
vbo_validated_drawrangeelements(ctx, mode, index_bounds_valid, start, end, count, type, indices, basevertex, 1, 0);
 }
@@ -1048,7 +1058,7 @@ vbo_exec_DrawElements(GLenum mode, GLsizei
count, GLenum type,
          return;
    }

-   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
+   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, 0, ~0,
                                    count, type, indices, 0, 1, 0);
 }

@@ -1077,7 +1087,7 @@ vbo_exec_DrawElementsBaseVertex(GLenum mode,
GLsizei count, GLenum type,
          return;
    }

-   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
+   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, 0, ~0,
count, type, indices, basevertex, 1, 0);
 }

@@ -1107,7 +1117,7 @@ vbo_exec_DrawElementsInstanced(GLenum mode,
GLsizei count, GLenum type,
          return;
    }

-   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
+   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, 0, ~0,
count, type, indices, 0, numInstances, 0);
 }

@@ -1142,7 +1152,7 @@ vbo_exec_DrawElementsInstancedBaseVertex(GLenum
mode, GLsizei count,
          return;
    }

-   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
+   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, 0, ~0,
                                    count, type, indices,
                                    basevertex, numInstances, 0);
 }
@@ -1179,7 +1189,7 @@
vbo_exec_DrawElementsInstancedBaseInstance(GLenum mode, GLsizei count,
          return;
    }

-   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
+   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, 0, ~0,
count, type, indices, 0, numInstances,
                                    baseInstance);
 }
@@ -1218,7 +1228,7 @@
vbo_exec_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode,
          return;
    }

-   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
+   vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, 0, ~0,
                                    count, type, indices, basevertex,
                                    numInstances, baseInstance);
 }
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to