Screen Capture does not work in OBS Studio on Wayland

Hello everyone,

Currently I do encounter an issue with OBS Studio on Wayland:
Capturing individual display using the Pipe Wire Capture source does not work reliably.

Selecting single displays will only capture the mouse pointer but the captured desktop keeps blank.
If you then intend to switch the screen to be captured Pipe Wire will stop doing so with the error message:
[pipewire] Failed to start screencast, denied or cancelled by user

What does work is a full desktop capture of all displays.
But that one comes with serve performance issues / FPS drops in the resulting footage.

Already reported this to the OBS Studio developers but they seem not to officially support Wayland on nVidia as of now.
That’s why I try my luck here :)

The full OBS Studio log can be found here: https://obsproject.com/logs/BiISQd9LNZcQKoz7

My system information are as follows:

Operating System: openSUSE Tumbleweed 20220814
KDE Plasma Version: 5.25.4
KDE Frameworks Version: 5.96.0
Qt Version: 5.15.5
Kernel Version: 5.19.1-1-default (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 1800X Eight-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3080/PCIe/SSE2
Graphics Driver Version: 515.65.01
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7A33
System Version: 2.0

If this is the wrong place to report this issue to I apologize and kindly ask if someone could guide me to the right direction.

Many thanks in advance,
V.

Read the nVidia driver readme for

515.65.01/README/xwayland.html

Chapter 40. GBM and GBM-based Wayland Compositors

Appendix L. Wayland Known Issues

Arch wiki Wayland, nvidia, sddm and plasma

Read the “Want to test Plasma Wayland?” sidebar on https://www.reddit.com/r/kde/

  • read up on Pipewire Usage in [ArchWiki] wiki.archlinux/title/PipeWire#Usage).

  • Accordingly, you should have xdg-desktop-portal and its right backend installed.

  • And make sure qt5-wayland package is installed as well, since OBS is a Qt5 application.

Hello there,
many thanks for the reply and dropping the very useful links.

I verified that:

  • pipewire.service is running
  • wireplumber.service is running (as this is running the media-session service is not required according to the r/kde reddit sidebar)
  • I run on pipewire 0.3.56
  • qt5-wayland is installed as of version 5.15.5+kde39
  • xdg-desktop-portal is installed as of version 1.14.6
  • xdg-desktop-portal-kde as version 5.25.4 (which is the one required according to the reddit sidebar or r/kde)
  • also the protals for gtk and wlroots are isntalled as well but shouldn’t be required according to the docs I’ve read.
  • xwayland is installed as version 22.1.3
  • KMS is also properly enabled and working via a the GRUB commandline parameter: nvidia-drm.modeset=1
  • libgbm is also installed as of version 22.1.4
  • libnvidia-egl-wayland1 as of version 1.1.9

Also read the appendix regarding known issues but can’t figure out if any of the mentioned limitations is related to the not working display share.

Side note: sharing individual Wayland and XWayland clients using just the Pipe Wire Window capture works fine.
It seems only the Desktop Capture seems not to work as expected.

According to all the things I’ve read and ensure I have everything setup correctly for this to work as it seems.

Is there anything else I might miss or could check if there is a configuration issue on my end?

Kind regards,
V.

Maybe the following will help…

  • xdg-desktop-portal-wlr

"No matter what browser you are using, the WebRTC code will check that the environment variable :

XDG_SESSION_TYPE=wayland`

is set in order to use xdg-desktop-portal.
It is set automatically when recent versions of wlroots and systemd are in use."

  • OpenSuse (Tumbleweed)

OBS Studio Pipewire 0.3 Patch

“A libpipewire0_2 package containing the Pipewire 0.2 client library is also available, so that binaries like Chrome and Electron apps that can’t be patched to use Pipewire 0.3 can still work.”

“Make sure xdg-desktop-portal-wlr and PipeWire are running properly and add a “Screen Capture (PipeWire)” source in OBS.”

OBS Linux Vulkan/OpenGL game capture

Pretty confident its not an nVidia issue.
Check out the Archwiki OBS Studio - Pipewire - Flatpak

“PipeWire also supports containers like Flatpak and does not rely on the audio and video user groups. Instead, it uses a Polkit-like security model, asking Flatpak or Wayland for permission to record screen or audio.”

To answer your issue - first of all it’s not nvidia driver related bug.
KWIN has merged a fix for it, however it isn’t present in 5.25.x releases, it was backported to 5.24.6 iirc as it is LTS of KDE.
You can check more here -
https://bugs.kde.org/show_bug.cgi?id=448944
https://bugs.kde.org/show_bug.cgi?id=448839

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.