wayland: soften GNOME warning

We've had some serious issues with GNOME in the past, but since then
their compositor has undergone some major internal improvements. The
most severe one [1], random vsync spikes and mistimed frames, can no
longer be reproduced by the original author of the issue. There are some
minor UI-related things (lack of window decorations for instance since
there is no xdg-decoration support), but users don't seem to complain
about that too much and they aren't revelant to playback.

3.38 isn't out quite yet, but that should also fix playback issues when
on a multimonitor setup (the fix is in the master branch at the moment).
In terms of playback, the only real concerning issue is the lack of idle
inhibit so a warning is still displayed. But GNOME has their own
workaround that users can use for that so if anyone happens to complain,
we can just point them to that.

[1] https://gitlab.gnome.org/GNOME/mutter/-/issues/957
This commit is contained in:
Dudemanguy 2020-08-16 19:14:54 -05:00 committed by Jan Ekström
parent 486516f723
commit 0216f8c787
2 changed files with 1 additions and 8 deletions

View File

@ -340,13 +340,6 @@ error:
struct vo *init_best_video_out(struct mpv_global *global, struct vo_extra *ex)
{
const char *xdg_current_desktop = getenv("XDG_CURRENT_DESKTOP");
if (xdg_current_desktop && strstr(xdg_current_desktop, "GNOME")) {
struct mp_log *log = mp_log_new(NULL, global->log, "vo");
mp_fatal(log, "GNOME detected. Things will be broken.\n");
talloc_free(log);
}
struct mp_vo_opts *opts = mp_get_config_group(NULL, global, &vo_sub_opts);
struct m_obj_settings *vo_list = opts->video_driver_list;
struct vo *vo = NULL;

View File

@ -1141,7 +1141,7 @@ int vo_wayland_init(struct vo *vo)
const char *xdg_current_desktop = getenv("XDG_CURRENT_DESKTOP");
if (xdg_current_desktop != NULL && strstr(xdg_current_desktop, "GNOME"))
MP_WARN(wl, "GNOME's wayland compositor is known to have many serious issues with mpv. Switch to GNOME's xorg session for the best experience.\n");
MP_WARN(wl, "GNOME's wayland compositor lacks support for the idle inhibit protocol. This means the screen can blank during playback.\n");
if (wl->dnd_devman && wl->seat) {
wl->dnd_ddev = wl_data_device_manager_get_data_device(wl->dnd_devman, wl->seat);