[Mesa-dev] [PATCH] egl_dri2: fix aux buffer leak in drm platform
Kristian Høgsberg
krh at bitplanet.net
Tue Apr 10 16:02:38 PDT 2012
On Tue, Apr 10, 2012 at 6:30 PM, Mandeep Baines
<mandeep.baines at gmail.com> wrote:
> Attached is the test case I've been using.
Nice, I've been meaning to update eglkms.c to also demonstrate
pageflipping. Do you mind if I commit your version?
Kristian
> On Tue, Apr 10, 2012 at 3:26 PM, <mandeep.baines at gmail.com> wrote:
>> From: Mandeep Singh Baines <msb at chromium.org>
>>
>> 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 at chromium.org>
>> Cc: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
>> Cc: Benjamin Franzke <benjaminfranzke at googlemail.com>
>> Cc: Kristian Hogsberg <krh at bitplanet.net>
>> Cc: David Reveman <reveman at chromium.org>
>> Cc: Stephane Marchesin <marcheu at 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
>>
More information about the mesa-dev
mailing list