On Tue, Apr 10, 2012 at 5:48 PM, Mandeep Singh Baines <mandeep.bai...@gmail.com> wrote: > Keep a reference to any newly allocated aux buffers to avoid > re-allocating for every st_framebuffer_validate() (i.e. leaking).
Oops, yes, that's obviously how it was meant to work. I never used a depth buffer in any of the test cases I used, so I didn't trigger this embarrassing leak. And just for the record, while Ander wrote the original patch, I introduced this bug when I refactored part of it. Anyway, committed and pushed. thanks, Kristian > Signed-off-by: Mandeep Singh Baines <m...@chromium.org> > Cc: Ander Conselvan de Oliveira <ander.conselvan.de.olive...@intel.com> > Cc: Benjamin Franzke <benjaminfran...@googlemail.com> > Cc: Kristian Hogsberg <k...@bitplanet.net> > Cc: David Reveman <reve...@chromium.org> > Cc: Stephane Marchesin <marc...@chromium.org> > --- > 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 18ecd17..54067ff 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; > > -- > 1.7.3.4 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev