Mesa (master): cso: unreference saved vertex buffers when restoring

Marek Olšák mareko at kemper.freedesktop.org
Thu Apr 12 18:43:25 UTC 2012


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Tue Apr 10 08:28:23 2012 +0200

cso: unreference saved vertex buffers when restoring

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/auxiliary/cso_cache/cso_context.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
index 60a6e02..43b8343 100644
--- a/src/gallium/auxiliary/cso_cache/cso_context.c
+++ b/src/gallium/auxiliary/cso_cache/cso_context.c
@@ -863,10 +863,18 @@ void cso_save_vertex_buffers(struct cso_context *ctx)
 
 void cso_restore_vertex_buffers(struct cso_context *ctx)
 {
+   unsigned i;
+
    util_copy_vertex_buffers(ctx->vertex_buffers,
                             &ctx->nr_vertex_buffers,
                             ctx->vertex_buffers_saved,
                             ctx->nr_vertex_buffers_saved);
+
+   for (i = 0; i < ctx->nr_vertex_buffers_saved; i++) {
+      pipe_resource_reference(&ctx->vertex_buffers_saved[i].buffer, NULL);
+   }
+   ctx->nr_vertex_buffers_saved = 0;
+
    ctx->pipe->set_vertex_buffers(ctx->pipe, ctx->nr_vertex_buffers,
                                  ctx->vertex_buffers);
 }




More information about the mesa-commit mailing list