The series looks OK to me.

Reviewed-by: Brian Paul <bri...@vmware.com>

On 02/28/2019 11:18 PM, mathias.froehl...@gmx.net wrote:
From: Mathias Fröhlich <mathias.froehl...@web.de>

Now that the buffer object usage history tracks if it is
being used as vertex buffer object, we can restrict setting
the ST_NEW_VERTEX_ARRAYS bit to dirty on glBufferData calls to
buffers that are potentially used as vertex buffer object.
Also put a note that the same could be done for index arrays
used in indexed draws.

Signed-off-by: Mathias Fröhlich <mathias.froehl...@web.de>
---
  src/mesa/state_tracker/st_cb_bufferobjects.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c 
b/src/mesa/state_tracker/st_cb_bufferobjects.c
index 5ebe94f4545..b05f2516980 100644
--- a/src/mesa/state_tracker/st_cb_bufferobjects.c
+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c
@@ -357,8 +357,10 @@ bufferobj_data(struct gl_context *ctx,
     /* The current buffer may be bound, so we have to revalidate all atoms that
      * might be using it.
      */
-   /* TODO: Add arrays to usage history */
-   ctx->NewDriverState |= ST_NEW_VERTEX_ARRAYS;
+   if (st_obj->Base.UsageHistory & USAGE_ARRAY_BUFFER)
+      ctx->NewDriverState |= ST_NEW_VERTEX_ARRAYS;
+   /* if (st_obj->Base.UsageHistory & USAGE_ELEMENT_ARRAY_BUFFER) */
+   /*    ctx->NewDriverState |= TODO: Handle indices as gallium state; */
     if (st_obj->Base.UsageHistory & USAGE_UNIFORM_BUFFER)
        ctx->NewDriverState |= ST_NEW_UNIFORM_BUFFER;
     if (st_obj->Base.UsageHistory & USAGE_SHADER_STORAGE_BUFFER)


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to