projects
/
platform
/
upstream
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
db8b363
)
nouveau: fix buffer object leak
author
Ben Skeggs
<bskeggs@redhat.com>
Tue, 6 Oct 2009 03:18:09 +0000
(13:18 +1000)
committer
Ben Skeggs
<bskeggs@redhat.com>
Tue, 6 Oct 2009 03:31:43 +0000
(13:31 +1000)
Very apparent with resizing windows on DRI2.
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
patch
|
blob
|
history
diff --git
a/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
b/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
index
8b53183
..
f512c0e
100644
(file)
--- a/
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
+++ b/
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
@@
-197,6
+197,7
@@
nouveau_drm_pt_from_name(struct drm_api *api, struct pipe_screen *pscreen,
unsigned stride, unsigned handle)
{
struct nouveau_device *dev = nouveau_screen(pscreen)->device;
+ struct pipe_texture *pt;
struct pipe_buffer *pb;
int ret;
@@
-218,7
+219,9
@@
nouveau_drm_pt_from_name(struct drm_api *api, struct pipe_screen *pscreen,
pb->usage = PIPE_BUFFER_USAGE_GPU_READ_WRITE |
PIPE_BUFFER_USAGE_CPU_READ_WRITE;
pb->size = nouveau_bo(pb)->size;
- return pscreen->texture_blanket(pscreen, templ, &stride, pb);
+ pt = pscreen->texture_blanket(pscreen, templ, &stride, pb);
+ pipe_buffer_reference(&pb, NULL);
+ return pt;
}
static boolean