diff options
author | Mandeep Singh Baines <mandeep.baines@gmail.com> | 2012-04-10 14:48:14 -0700 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-04-10 19:08:12 -0400 |
commit | 0695cf68f5afb903f93cc3779444d095b218271d (patch) | |
tree | 8cf013f9f385ab508ad3079263201b8783c58ef0 | |
parent | a27c7d80afc3160a0face4b8781bf921229bc3cc (diff) |
egl_dri2: fix aux buffer leak in drm platform
Keep a reference to any newly allocated aux buffers to avoid
re-allocating for every st_framebuffer_validate() (i.e. leaking).
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
-rw-r--r-- | src/egl/drivers/dri2/platform_drm.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index 18ecd173f4e..54067ff7814 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -220,16 +220,15 @@ get_aux_bo(struct dri2_egl_surface *dri2_surf, { struct dri2_egl_display *dri2_dpy = dri2_egl_display(dri2_surf->base.Resource.Display); - __DRIbuffer *b; + __DRIbuffer *b = dri2_surf->dri_buffers[attachment]; - b = NULL; - if (dri2_surf->dri_buffers[attachment]) - b = dri2_surf->dri_buffers[attachment]; - if (b == NULL) + if (b == NULL) { b = dri2_dpy->dri2->allocateBuffer(dri2_dpy->dri_screen, attachment, format, dri2_surf->base.Width, dri2_surf->base.Height); + dri2_surf->dri_buffers[attachment] = b; + } if (b == NULL) return -1; |