diff options
author | Marek Olšák <maraeo@gmail.com> | 2012-04-10 08:28:23 +0200 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2012-04-12 19:17:47 +0200 |
commit | 6f03692775ed49035802d660516b7d7464c7a1ad (patch) | |
tree | a1d36044cceb61d88e8313e1d19665153cb4d5a0 | |
parent | 249fc7056104113633215106ac085b505d8dc161 (diff) | |
download | external_mesa3d-6f03692775ed49035802d660516b7d7464c7a1ad.zip external_mesa3d-6f03692775ed49035802d660516b7d7464c7a1ad.tar.gz external_mesa3d-6f03692775ed49035802d660516b7d7464c7a1ad.tar.bz2 |
cso: unreference saved vertex buffers when restoring
Reviewed-by: Brian Paul <brianp@vmware.com>
-rw-r--r-- | 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); } |