[Mesa-dev] [PATCH 16/17] st/mesa: remove dependency on _NEW_BUFFER_OBJECT for vertex arrays

Marek Olšák maraeo at gmail.com
Wed May 1 20:43:07 PDT 2013


_NEW_BUFFER_OBJECT means glBufferData was called. We can just set our own
flag in BufferData.
---
 src/mesa/state_tracker/st_atom_array.c       |    2 +-
 src/mesa/state_tracker/st_cb_bufferobjects.c |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_array.c b/src/mesa/state_tracker/st_atom_array.c
index 2437245..87a0a17 100644
--- a/src/mesa/state_tracker/st_atom_array.c
+++ b/src/mesa/state_tracker/st_atom_array.c
@@ -589,7 +589,7 @@ static void update_array(struct st_context *st)
 const struct st_tracked_state st_update_array = {
    "st_update_array",					/* name */
    {							/* dirty */
-      _NEW_BUFFER_OBJECT,                               /* mesa */
+      0,                                                /* mesa */
       ST_NEW_VERTEX_ARRAYS | ST_NEW_VERTEX_PROGRAM,     /* st */
    },
    update_array						/* update */
diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c
index c868d5e..2e5e253 100644
--- a/src/mesa/state_tracker/st_cb_bufferobjects.c
+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c
@@ -264,8 +264,8 @@ st_bufferobj_data(struct gl_context *ctx,
          pipe_buffer_write(pipe, st_obj->buffer, 0, size, data);
    }
 
-   /* BufferData may change a uniform buffer, need to update it */
-   st->dirty.st |= ST_NEW_UNIFORM_BUFFER;
+   /* BufferData may change an array or uniform buffer, need to update it */
+   st->dirty.st |= ST_NEW_VERTEX_ARRAYS | ST_NEW_UNIFORM_BUFFER;
 
    return GL_TRUE;
 }
-- 
1.7.10.4



More information about the mesa-dev mailing list