[Mesa-dev] [PATCH 03/12] vbo: Use a local variable for the dlist offsets.

Mathias.Froehlich at gmx.net Mathias.Froehlich at gmx.net
Tue Feb 27 06:12:22 UTC 2018


From: Mathias Fröhlich <mathias.froehlich at web.de>

The master value is now stored inside the VAO already present in
struct vbo_save_vertex_list. Remove the unneeded copy from dlist storage.

Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at web.de>
---
 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 414a477f31..14ac831ffd 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 a87bbe0856..b6fc7daa35 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.14.3



More information about the mesa-dev mailing list