Skip to content
Snippets Groups Projects
Commit b618d7ea authored by Emma Anholt's avatar Emma Anholt
Browse files

egl: Fix leak of X11 pixmaps backing pbuffers in DRI3.


This is basically copied from the DRI2 destroy path.  Without this,
Raspberry Pi would quickly run out of CMA during the EGL tests in the CTS
due to all the pixmaps laying around.

Fixes: f35198ba ("egl/x11: Implement dri3 support with loader's dri3 helper")
Reviewed-by: default avatarEmil Velikov <emil.velikov@collabora.com>
Reviewed-by: default avatarEric Engestrom <eric.engestrom@intel.com>
parent 08a5c395
No related branches found
No related tags found
No related merge requests found
......@@ -107,12 +107,17 @@ static const struct loader_dri3_vtable egl_dri3_vtable = {
static EGLBoolean
dri3_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri3_egl_surface *dri3_surf = dri3_egl_surface(surf);
xcb_drawable_t drawable = dri3_surf->loader_drawable.drawable;
(void) drv;
loader_dri3_drawable_fini(&dri3_surf->loader_drawable);
if (surf->Type == EGL_PBUFFER_BIT)
xcb_free_pixmap (dri2_dpy->conn, drawable);
dri2_fini_surface(surf);
free(surf);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment