Mesa (master): egl/wayland: Ignore invalid modifiers

Daniel Stone daniels at kemper.freedesktop.org
Mon Jul 24 15:43:44 UTC 2017


Module: Mesa
Branch: master
Commit: dd072cf4b131c8aa9e8be0ff24b70856fe39285e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dd072cf4b131c8aa9e8be0ff24b70856fe39285e

Author: Daniel Stone <daniels at collabora.com>
Date:   Fri Jul 21 12:05:17 2017 +0100

egl/wayland: Ignore invalid modifiers

If the underlying driver does not support modifiers, dmabuf will still
advertise formats through the 'modifier' event, but send them with an
invalid modifier. Ignore them if this is the case, rather than passing
them through to the driver.

Signed-off-by: Daniel Stone <daniels at collabora.com>
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
Fixes: 02cc35937277 ("egl/wayland: Use linux-dmabuf interface for buffers")

---

 src/egl/drivers/dri2/platform_wayland.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index f4c09ac0bc..ff35507d25 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -1083,6 +1083,10 @@ dmabuf_handle_modifier(void *data, struct zwp_linux_dmabuf_v1 *dmabuf,
    struct dri2_egl_display *dri2_dpy = data;
    uint64_t *mod = NULL;
 
+   if (modifier_hi == (DRM_FORMAT_MOD_INVALID >> 32) &&
+       modifier_lo == (DRM_FORMAT_MOD_INVALID & 0xffffffff))
+      return;
+
    switch (format) {
    case WL_DRM_FORMAT_ARGB8888:
       mod = u_vector_add(&dri2_dpy->wl_modifiers.argb8888);




More information about the mesa-commit mailing list