XComposite does not always work
Hey there,
I apologize if this is not an issue for Mutter to fix but rather for the OBS Studio developers. At this point I simply do not know who's in charge here :)
Affected version
- openSUSE Tumbleweed
- Affected Mutter version: 41.1
- XOrg
- OBS Studio 27.1.3
Specs:
- Distribution: openSUSE Tumbleweed
- Desktop Environment: Gnome (41.1)
- Window manager: Mutter (41.1)
- Display server: X11 (1.20.13)
- Audio Server: Pipewire (0.3.39)
- Graphics driver: nvidia (470.82)
Bug summary
When selecting an X window in OBS Studio using the XComposite source it does in certain cases grep a grey or black frame buffer.
Applications affected by this are any Steam window (eg. Library or the friendlist), some gnome apps like gnome-terminal, nautilus, gedit, any game launched via Steam by using Proton which are set to fullscreen, exclusive fullscreen or borderless windows (also as fullscreen), Lutris and it seems Electron apps without a window decoration (MS Teams) are also sometimes effected if either being maximized (not fullscreen) or in certain width and height.
Some apps do start to show up in the preview if resized. But also depending on the width and height they might also start to disappear again.
Applications NOT affected are: Rhytmbox, Evolution, any native Linux game running via Steam no matter if they are in fullscreen or window mode and any Qt based application (eg. YaST, YaST Software, Simple Screen Recorder)
I was able to reproduce this issue also on Cinnamon using Mutter (same system)
On DEs not using Mutter everything worked as expected using the very same applications on the very same system using the same distribution. I tested KDE 5.23.2, IceWM 2.1.1 (well apparently a standalone WM), XFCE 4.16.0
Steps to reproduce
- Install OBS Studio either from flatpak or the distro repos
- Select any of the above mentioned applications.
- Notice an empty input source in the OBS Studio preview monitor and recorded videos
What happened
Mutter returned an empty or wrong frame buffer. Window dimensions of any selected application where communicated to OBS just fine.
What did you expect to happen
I expected to see any output of the selected source window in the OBS Studio preview and recorded video.
Relevant logs, screenshots, screencasts etc.
Screencast: Screencast
Or on YouTube: https://youtu.be/lwzBO_MHWNw
Example output form OBS if a non working application is selected
error: xcompcap: cleanup glXReleaseTexImageEXT failed: GLXBadPixmap
info: xcompcap: [window-capture: 'Fensteraufnahme (Xcomposite)'] update settings:
title: vortex@Z004:~
class: gnome-terminal-server
Bit depth: 32
Found proper GLXFBConfig (in 9): yes
error: xcompcap: cleanup glXReleaseTexImageEXT failed: GLXBadPixmap
error: xcompcap: cleanup glXDestroyPixmap failed: GLXBadPixmap
info: xcompcap: [window-capture: 'Fensteraufnahme (Xcomposite)'] update settings:
title: vortex@Z004:~
class: gnome-terminal-server
Bit depth: 32
Found proper GLXFBConfig (in 9): yes
Example output by selecting a working application:
error: xcompcap: cleanup glXReleaseTexImageEXT failed: GLXBadPixmap
error: xcompcap: cleanup glXDestroyPixmap failed: GLXBadPixmap
info: xcompcap: [window-capture: 'Fensteraufnahme (Xcomposite)'] update settings:
title: New Issue · GNOME / mutter · GitLab - Mozilla Firefox
class: Navigator
Bit depth: 32
Found proper GLXFBConfig (in 9): yes
error: xcompcap: cleanup glXReleaseTexImageEXT failed: GLXBadPixmap
info: xcompcap: [window-capture: 'Fensteraufnahme (Xcomposite)'] update settings:
title: New Issue · GNOME / mutter · GitLab - Mozilla Firefox
class: Navigator
Bit depth: 32
Found proper GLXFBConfig (in 9): yes