Mesa (master): st/mesa: Invalidate the gallium array atom only if needed.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Mar 4 17:19:36 UTC 2019


Module: Mesa
Branch: master
Commit: 904a0552aabf0624f1d7507b89d8a9a7bdd3bad5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=904a0552aabf0624f1d7507b89d8a9a7bdd3bad5

Author: Mathias Fröhlich <mathias.froehlich at web.de>
Date:   Tue Feb 26 06:39:05 2019 +0100

st/mesa: Invalidate the gallium array atom only if needed.

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.

Reviewed-by: Brian Paul <brianp at vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at 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)




More information about the mesa-commit mailing list