diff options
author | Daniel Stone <[email protected]> | 2017-06-16 18:01:23 +0100 |
---|---|---|
committer | Daniel Stone <[email protected]> | 2017-07-18 22:16:21 +0100 |
commit | 02cc359372773800de817950aebdf9be2c7973d1 (patch) | |
tree | 781991388d821d7ecda5c84963ea5760d2846fde /src/egl/drivers/dri2/egl_dri2.c | |
parent | cfaca5742e40371bdc6b317569cb847d6bd4eeb0 (diff) |
egl/wayland: Use linux-dmabuf interface for buffers
When available, use the zwp_linux_dambuf_v1 interface to create buffers,
which allows multiple planes and buffer modifiers to be used.
Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/egl/drivers/dri2/egl_dri2.c')
-rw-r--r-- | src/egl/drivers/dri2/egl_dri2.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 072494ed4ed..a197e0456fd 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -53,6 +53,7 @@ #ifdef HAVE_WAYLAND_PLATFORM #include "wayland-drm.h" #include "wayland-drm-client-protocol.h" +#include "linux-dmabuf-unstable-v1-client-protocol.h" #endif #ifdef HAVE_X11_PLATFORM @@ -62,6 +63,7 @@ #include "egl_dri2.h" #include "loader/loader.h" #include "util/u_atomic.h" +#include "util/u_vector.h" /* The kernel header drm_fourcc.h defines the DRM formats below. We duplicate * some of the definitions here so that building Mesa won't bleeding-edge @@ -938,11 +940,16 @@ dri2_display_destroy(_EGLDisplay *disp) case _EGL_PLATFORM_WAYLAND: if (dri2_dpy->wl_drm) wl_drm_destroy(dri2_dpy->wl_drm); + if (dri2_dpy->wl_dmabuf) + zwp_linux_dmabuf_v1_destroy(dri2_dpy->wl_dmabuf); if (dri2_dpy->wl_shm) wl_shm_destroy(dri2_dpy->wl_shm); wl_registry_destroy(dri2_dpy->wl_registry); wl_event_queue_destroy(dri2_dpy->wl_queue); wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper); + u_vector_finish(&dri2_dpy->wl_modifiers.argb8888); + u_vector_finish(&dri2_dpy->wl_modifiers.xrgb8888); + u_vector_finish(&dri2_dpy->wl_modifiers.rgb565); if (dri2_dpy->own_device) { wl_display_disconnect(dri2_dpy->wl_dpy); } |