Looks alright to me. Reviewed-by: Roland Scheidegger <srol...@vmware.com>
Am 17.01.2018 um 23:57 schrieb Brian Paul: > The optimization in change 8e4efdc895ea ("vbo: optimize some display > list drawing") missed the loopback case. This is used when the > glBegin/End primitive doesn't have a uniform set of vertex attributes. > The new Piglit gl-1.0-dlist-materials test hits this. > > So check the aligned_vertex_buffer_offset(list) value and adjust the > buffer offset accordingly. > > We also need to remove the 'start == 0' assertion in the loopback > code since it no longer applies. > --- > src/mesa/vbo/vbo_save_draw.c | 5 ++++- > src/mesa/vbo/vbo_save_loopback.c | 6 +++--- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c > index 6bccc85..a63e067 100644 > --- a/src/mesa/vbo/vbo_save_draw.c > +++ b/src/mesa/vbo/vbo_save_draw.c > @@ -240,8 +240,11 @@ loopback_vertex_list(struct gl_context *ctx, > list->vertex_store->bufferobj, > MAP_INTERNAL); > > + unsigned buffer_offset = > + aligned_vertex_buffer_offset(list) ? 0 : list->buffer_offset; > + > vbo_loopback_vertex_list(ctx, > - (const GLfloat *)(buffer + list->buffer_offset), > + (const GLfloat *) (buffer + buffer_offset), > list->attrsz, > list->prims, > list->prim_count, > diff --git a/src/mesa/vbo/vbo_save_loopback.c > b/src/mesa/vbo/vbo_save_loopback.c > index 1dae91b..9c0e937 100644 > --- a/src/mesa/vbo/vbo_save_loopback.c > +++ b/src/mesa/vbo/vbo_save_loopback.c > @@ -107,17 +107,17 @@ loopback_prim(struct gl_context *ctx, > GLuint k; > > if (0) > - printf("loopback prim %s(%s,%s) verts %d..%d\n", > + printf("loopback prim %s(%s,%s) verts %d..%d vsize %d\n", > _mesa_lookup_prim_by_nr(prim->mode), > prim->begin ? "begin" : "..", > prim->end ? "end" : "..", > - start, end); > + start, end, > + vertex_size); > > if (prim->begin) { > CALL_Begin(GET_DISPATCH(), (prim->mode)); > } > else { > - assert(start == 0); > start += wrap_count; > } > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev