From: Daniel Stone Date: Fri, 21 Jul 2017 11:05:17 +0000 (+0100) Subject: egl/wayland: Ignore invalid modifiers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dd072cf4b131c8aa9e8be0ff24b70856fe39285e;p=mesa.git 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 Reviewed-by: Emil Velikov Fixes: 02cc35937277 ("egl/wayland: Use linux-dmabuf interface for buffers") --- diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index f4c09ac0bc1..ff35507d255 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);