From f7178d677ca6a072455ff45b328b1078175a93b6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mathias=20Fr=C3=B6hlich?= Date: Sun, 25 Feb 2018 18:01:07 +0100 Subject: [PATCH] vbo: Use a local variable for the dlist offsets. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The master value is now stored inside the VAO already present in struct vbo_save_vertex_list. Remove the unneeded copy from dlist storage. Reviewed-by: Brian Paul Signed-off-by: Mathias Fröhlich --- src/mesa/vbo/vbo_save.h | 1 - src/mesa/vbo/vbo_save_api.c | 15 +++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/mesa/vbo/vbo_save.h b/src/mesa/vbo/vbo_save.h index 414a477..14ac831 100644 --- a/src/mesa/vbo/vbo_save.h +++ b/src/mesa/vbo/vbo_save.h @@ -64,7 +64,6 @@ struct vbo_save_vertex_list { GLbitfield64 enabled; /**< mask of enabled vbo arrays. */ GLubyte attrsz[VBO_ATTRIB_MAX]; GLenum16 attrtype[VBO_ATTRIB_MAX]; - GLuint offsets[VBO_ATTRIB_MAX]; GLuint vertex_size; /**< size in GLfloats */ struct gl_vertex_array_object *VAO[VP_MODE_MAX]; diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index a87bbe0..b6fc7da 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -529,8 +529,6 @@ compile_vertex_list(struct gl_context *ctx) struct vbo_save_context *save = &vbo_context(ctx)->save; struct vbo_save_vertex_list *node; GLintptr buffer_offset = 0; - GLuint offset; - unsigned i; /* Allocate space for this structure in the display list currently * being compiled. @@ -563,13 +561,14 @@ compile_vertex_list(struct gl_context *ctx) * changes in drivers. In particular, the Gallium CSO module will * filter out redundant vertex buffer changes. */ - offset = 0; + buffer_offset = 0; } else { - offset = node->buffer_offset; + buffer_offset = node->buffer_offset; } - for (i = 0; i < VBO_ATTRIB_MAX; ++i) { - node->offsets[i] = offset; - offset += node->attrsz[i] * sizeof(GLfloat); + GLuint offsets[VBO_ATTRIB_MAX]; + for (unsigned i = 0, offset = 0; i < VBO_ATTRIB_MAX; ++i) { + offsets[i] = offset; + offset += save->attrsz[i] * sizeof(GLfloat); } node->vertex_count = save->vert_count; node->wrap_count = save->copied.nr; @@ -586,7 +585,7 @@ compile_vertex_list(struct gl_context *ctx) update_vao(ctx, vpm, &save->VAO[vpm], node->vertex_store->bufferobj, buffer_offset, node->vertex_size*sizeof(GLfloat), node->enabled, - node->attrsz, node->attrtype, node->offsets); + node->attrsz, node->attrtype, offsets); /* Reference the vao in the dlist */ node->VAO[vpm] = NULL; _mesa_reference_vao(ctx, &node->VAO[vpm], save->VAO[vpm]); -- 2.7.4