summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcin Slusarz <marcin.slusarz@gmail.com>2012-06-14 21:48:46 +0200
committerMarcin Slusarz <marcin.slusarz@gmail.com>2012-06-14 23:38:28 +0200
commitfc782bcbf04f036990f69b14e01304e1e6dc8fd1 (patch)
tree5d863454f47887921ff77829a1aede971e4e9ae5
parent169a0ae40aed27e3f61ac5989b05f0014dab6525 (diff)
downloadexternal_mesa3d-fc782bcbf04f036990f69b14e01304e1e6dc8fd1.zip
external_mesa3d-fc782bcbf04f036990f69b14e01304e1e6dc8fd1.tar.gz
external_mesa3d-fc782bcbf04f036990f69b14e01304e1e6dc8fd1.tar.bz2
nv50,nvc0: fix stream output target buffer leak
It manifests at exit as: "WARNING: destroying GPU memory cache with some buffers still in use"
-rw-r--r--src/gallium/drivers/nv50/nv50_state.c1
-rw-r--r--src/gallium/drivers/nvc0/nvc0_state.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_state.c b/src/gallium/drivers/nv50/nv50_state.c
index 81c3fa2..2052f91 100644
--- a/src/gallium/drivers/nv50/nv50_state.c
+++ b/src/gallium/drivers/nv50/nv50_state.c
@@ -983,6 +983,7 @@ nv50_so_target_destroy(struct pipe_context *pipe,
struct nv50_so_target *targ = nv50_so_target(ptarg);
if (targ->pq)
pipe->destroy_query(pipe, targ->pq);
+ pipe_resource_reference(&targ->pipe.buffer, NULL);
FREE(targ);
}
diff --git a/src/gallium/drivers/nvc0/nvc0_state.c b/src/gallium/drivers/nvc0/nvc0_state.c
index cce2a48..1bd5434 100644
--- a/src/gallium/drivers/nvc0/nvc0_state.c
+++ b/src/gallium/drivers/nvc0/nvc0_state.c
@@ -899,6 +899,7 @@ nvc0_so_target_destroy(struct pipe_context *pipe,
{
struct nvc0_so_target *targ = nvc0_so_target(ptarg);
pipe->destroy_query(pipe, targ->pq);
+ pipe_resource_reference(&targ->pipe.buffer, NULL);
FREE(targ);
}