Skip to content
Snippets Groups Projects
Commit 0abb5770 authored by Autumn Ashton's avatar Autumn Ashton :frog: Committed by Olivier Fourdan
Browse files

xwayland: Don't expose XRandR emulated modes for leaseable displays

Leasable displays do not have any actual associated Wayland output and
are not available to regular X11 clients and left entirely to the
application who requests the lease.

As these are not actually managed by the Wayland compositor and left
entirely to the "lessee" application, the viewporter protocol required
for the XRandR emulation is not usable on such devices.

We should therefore not advertise the XRandR emulated modes for those
leasable displays.

This also solves a problem with implementations of glXGetMscRateOML()
which is used notably by Chromium/Electron. Applications using this
which will begin lagging/stuttering exponentially over
time, trying to look up a non-existent mode with 0x0 as returned by
XF86VidModeGetModeLine() with XRandR emulation for such devices.

See-also: https://github.com/labwc/labwc/issues/553


Signed-off-by: default avatarJoshua Ashton <joshua@froggi.es>
parent 39934a65
No related branches found
No related tags found
1 merge request!1034xwayland: Don't expose invalid modes for fake leaseable displays
......@@ -224,8 +224,8 @@ xwl_output_get_emulated_mode_for_client(struct xwl_output *xwl_output,
if (!xwl_output)
return NULL;
/* We don't do XRandr emulation when rootful */
if (!xwl_output->xwl_screen->rootless)
/* We don't do XRandr emulation when rootful or a fake lease display */
if (!xwl_output->xwl_screen->rootless || !xwl_output->output)
return NULL;
for (i = 0; i < XWL_CLIENT_MAX_EMULATED_MODES; i++) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment