summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2023-06-12 14:43:07 -0500
committerDudemanguy <random342@airmail.cc>2023-06-16 14:46:59 +0000
commit650c53df502d3e2d603cbe87a6dde249d4d1e178 (patch)
tree65552a5db057ac064c3770d2234c837c68c8a33e /video
parentca08bf599fce2c73824a74d35f9618dcb2410bbe (diff)
downloadmpv-650c53df502d3e2d603cbe87a6dde249d4d1e178.tar.bz2
mpv-650c53df502d3e2d603cbe87a6dde249d4d1e178.tar.xz
vo_dmabuf_wayland: drop linux-dmabuf-v2 (again)
It was done once before but later reverted for testing reasons. This time it's permanent though since I can test this VO on ARM and with an up to date system.
Diffstat (limited to 'video')
-rw-r--r--video/out/vo_dmabuf_wayland.c4
-rw-r--r--video/out/wayland_common.c23
-rw-r--r--video/out/wayland_common.h4
-rw-r--r--video/out/wldmabuf/ra_wldmabuf.c5
4 files changed, 2 insertions, 34 deletions
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;
}