diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h index 3f437553..3facd87d 100644 --- a/include/wlr/render/egl.h +++ b/include/wlr/render/egl.h @@ -41,6 +41,7 @@ struct wlr_egl { EGLConfig config; // may be EGL_NO_CONFIG EGLContext context; EGLDeviceEXT device; // may be EGL_NO_DEVICE_EXT + struct gbm_device *gbm_device; struct { // Display extensions diff --git a/render/egl.c b/render/egl.c index af6d6892..4cc117c8 100644 --- a/render/egl.c +++ b/render/egl.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -487,6 +488,10 @@ void wlr_egl_destroy(struct wlr_egl *egl) { eglTerminate(egl->display); eglReleaseThread(); + if (egl->gbm_device) { + gbm_device_destroy(egl->gbm_device); + } + free(egl); } diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c index 94ec63ec..7ce86695 100644 --- a/render/wlr_renderer.c +++ b/render/wlr_renderer.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include