diff --git a/video/out/vo_dmabuf_wayland.c b/video/out/vo_dmabuf_wayland.c index f57e6f27ba..ee60f4a2da 100644 --- a/video/out/vo_dmabuf_wayland.c +++ b/video/out/vo_dmabuf_wayland.c @@ -475,8 +475,8 @@ static int preinit(struct vo *vo) wl_list_init(&p->buffer_list); - if (!vo->wl->dmabuf) { - MP_FATAL(vo->wl, "Compositor doesn't support the %s protocol!\n", + if (!vo->wl->dmabuf || !vo->wl->dmabuf_feedback) { + MP_FATAL(vo->wl, "Compositor doesn't support the %s (ver. 4) protocol!\n", zwp_linux_dmabuf_v1_interface.name); goto err; } diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index a2ef5400ee..d67f7e46a0 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -1152,24 +1152,6 @@ static const struct wl_callback_listener frame_listener = { frame_callback, }; -static void dmabuf_format(void *data, struct zwp_linux_dmabuf_v1 *zwp_linux_dmabuf, - uint32_t format) -{ - struct vo_wayland_state *wl = data; - - if (wl->drm_format_ct == wl->drm_format_ct_max) { - wl->drm_format_ct_max *= 2; - wl->drm_formats = talloc_realloc(wl, wl->drm_formats, int, wl->drm_format_ct_max); - } - - wl->drm_formats[wl->drm_format_ct++] = format; - MP_VERBOSE(wl, "%s is supported by the compositor.\n", mp_tag_str(format)); -} - -static const struct zwp_linux_dmabuf_v1_listener dmabuf_listener = { - dmabuf_format -}; - static void done(void *data, struct zwp_linux_dmabuf_feedback_v1 *zwp_linux_dmabuf_feedback_v1) { @@ -1261,11 +1243,6 @@ static void registry_handle_add(void *data, struct wl_registry *reg, uint32_t id wl->dmabuf = wl_registry_bind(reg, id, &zwp_linux_dmabuf_v1_interface, 4); wl->dmabuf_feedback = zwp_linux_dmabuf_v1_get_default_feedback(wl->dmabuf); zwp_linux_dmabuf_feedback_v1_add_listener(wl->dmabuf_feedback, &dmabuf_feedback_listener, wl); - } else if (!strcmp (interface, zwp_linux_dmabuf_v1_interface.name) && (ver >= 2) && found++) { - wl->dmabuf = wl_registry_bind(reg, id, &zwp_linux_dmabuf_v1_interface, 2); - zwp_linux_dmabuf_v1_add_listener(wl->dmabuf, &dmabuf_listener, wl); - wl->drm_format_ct_max = 64; - wl->drm_formats = talloc_array(wl, int, wl->drm_format_ct_max); } if (!strcmp (interface, wp_viewporter_interface.name) && (ver >= 1) && found++) { diff --git a/video/out/wayland_common.h b/video/out/wayland_common.h index a524c530fa..32394a24a0 100644 --- a/video/out/wayland_common.h +++ b/video/out/wayland_common.h @@ -103,10 +103,6 @@ struct vo_wayland_state { wayland_format *format_map; uint32_t format_size; bool using_dmabuf_wayland; - /* TODO: remove these once zwp_linux_dmabuf_v1 version 2 support is removed. */ - int *drm_formats; - int drm_format_ct; - int drm_format_ct_max; /* presentation-time */ struct wp_presentation *presentation; diff --git a/video/out/wldmabuf/ra_wldmabuf.c b/video/out/wldmabuf/ra_wldmabuf.c index a3499a25e9..3f2731429a 100644 --- a/video/out/wldmabuf/ra_wldmabuf.c +++ b/video/out/wldmabuf/ra_wldmabuf.c @@ -39,11 +39,6 @@ bool ra_compatible_format(struct ra* ra, uint32_t drm_format, uint64_t modifier) return true; } - for (int i = 0; i < wl->drm_format_ct; i++) { - if (drm_format == wl->drm_formats[i]) - return true; - } - return false; }