randr: auto-bind of GPU is a config change

Graphics / X.Org / X.Org Server - Pekka Paalanen [collabora.com] - 10 February 2020 15:07 UTC

When a GPU is auto-bound adding more outputs to a screen, that needs to count as a configuration change on that screen so that a WM listening for RRScreenChangeNotify gets notified and handles it as a hotplug. This is particularly for cases where the outputs are already connected. Otherwise nothing might happen.

Issue #909 describes a real world case where plugging in a DisplayLink dock with a monitor already connected is sometimes left inactive by GNOME. That issue is a race, and requires adding a sleep(5); as the first thing in NewGPUDeviceRequest() to reproduce reliably. With the sleep, the monitor in the dock will never activate automatically. Add this fix over the sleep, and the issue is gone.

This fix was originally developed on a branch replicating Ubuntu 19.04 patch set based on xserver 1.20.4. Testing on master branch was impossible due to xorg/xserver#910.

Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/909

bfb36a580 randr: auto-bind of GPU is a config change
randr/rrprovider.c | 4 ++++
1 file changed, 4 insertions(+)

Upstream: cgit.freedesktop.org

  • Share