Comment 74 for bug 1777708

Revision history for this message
Corben (tobias-krummen) wrote (last edit ):

I'm facing the same symptoms. First time I realized I have this issue was when playing a game on Stadia through Chrome/Chromium. I am using a special hybrid joystick (movemaster.biz) to replace my keyboard, which consists of two parts. Both devices are connected via usb and are recognized as usb hid keyboards. When steering with the grip of the device and only pressing buttons on the same device everything is okay. But as soon as I press a button on the extension there is a litte lag or stutter/freeze.

I thought it would be an issue with the browser and blamed Chromium, as I haven't had any issues with games played locally. But now I had the same issue with Star Wars Battlefront (from EA) played through Steam + Proton.

The output of journalctl showed the same overwriting existing binding of keysym errors as described here: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1857392

That report leads to this report, and from here I got to https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1858#note_818548 describing a workaround with altering libmutter.

I tried that workaround on Ubuntu 20.04.3 LTS, where I at first wasn't able to successfully biuld mutter/libmutter, but it helped to disable the tests by editing debian/rules and add export DEB_BUILD_OPTIONS=nocheck.

Installing the altered lib and rebooting didn't get rid of the problem though.

Unfortunately the blog post from Osvald doesn't seem to be reachable as the https certificate was revoked.

As the freeze happens despite the workaround, I'm not sure if it's the same issue though. Any help would be appreciated as this behavior totally ruins the experience.

edit: I found a different workaround.

As this affects me only in games, the workaround seems to tell the window and mutter they should bypass compositing, when the window is in full screen. This can be achieved via xprop.
- open a chromium, open a terminal
- in the terminal enter xprop (enter) and with the cross-mouse cursor click into the chromium window. It shows:
_NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2 (2 means: "hints the compositor to not disabling compositing of this window" according to https://gitlab.gnome.org/GNOME/mutter/-/issues/24#note_924252)
_NET_WM_PID(CARDINAL) = 60247
- search for window id: xdotool search --all --pid 60247 --name Chromium (e.g. 96468995)
- alter bypass value: xprop -id 96468995 -format _NET_WM_BYPASS_COMPOSITOR 32c -set _NET_WM_BYPASS_COMPOSITOR 1
When Stadia now launches a game, the lag is gone when I use the movemaster and the extension. It introduces some minor tearing, but that's way less disturbing than the stutter/freezes.