Open lexano-ivs opened 18 hours ago
For reference, a screenshot of my configuration:
Your log is incomplete, replicate the issue and then restart obs and upload the previous log.
Use Ubuntu 24.04 with Wayland an NVIDIA GPU (I don't think the GPU matters but I was using this)
No this is probably the most important thing besides which compositor you are using. Please attempt to replicate with another vendor and another compositor.
You will have to try to reproduce with either Fedora, Arch Linux or a distro that do have more recent dependencies. PipeWire get fixes but Ubuntu does not get them, and Debian based distro mess too much with patches around PipeWire.
I setup the same configuration with EndeavourOS (Arch-based) with the Gnome desktop on Wayland, and applied all updates as of today. This is indeed much more stable than Ubuntu 24.04 in terms of the pipewire "Out of buffers" issue. I don't see the problem during steady-state in this configuration. It does point to a problem with a prior version of pipewire and/or differences in the desktop environment or compositor.
Update: The "Out of buffers" problem is happening with TEB enabled. The test above was with a 31.0.0-rc1 using a single output stream to Twitch. With TEB (between 3 and 5 output streams), I'm seeing many "Out of buffer" messages. The trigger seems to be several pipewire capture sessions and multiple output streams simultaneously.
Log file with TEB is at https://obsproject.com/logs/Z66AsQcbwBd67sLy
Operating System Info
Ubuntu 24.04
Other OS
No response
OBS Studio Version
31.0.0-rc1
OBS Studio Version (Other)
No response
OBS Studio Log URL
https://obsproject.com/logs/ejZ0DoN56yhfNVBO
OBS Studio Crash Log URL
No response
Expected Behavior
I expect no render lag when using multiple pipewire screen capture sources (each using an individual application), and no messages of the following format in the debug log:
16:27:07.224: [pipewire] Out of buffers!
Current Behavior
Render lag count is increasing very frequently and also the skipped frames are incrementing as well. The debug log often output a single or sometimes a burst of messages of the form:
16:27:07.224: [pipewire] Out of buffers!
The presence of these "Out of buffers" messages seems to directly cause render lag counts to increment.
The exact line that is being tripped is https://github.com/obsproject/obs-studio/blob/c8e215be3da8d0a5cfd83bb35db4be045a7669b5/plugins/linux-pipewire/pipewire.c#L676
If I use fewer Pipewire application captures, the problem is reduced (or completely masked if there is only 1).
Steps to Reproduce
glxgears
supertuxkart --demo-mode=5 --demo-laps=3 --demo-karts=3
. Configure SuperTuxkart with VSYNC on and set resolution to 1080p with maximum GPU detail. SuperTuxkart will run in demo mode if left alone for a few seconds.htop
ornvidia-smi dmon
just to get some activityAnything else we should know?
The canvas and output are set to 2560x1440p for this test. The issue with pipewire running out of buffers also happens with 1080p, but much less frequently. Using 1440p makes it much easier to reproduce.
The issue becomes far more prevalent if using the TEB (Twitch Enhanced Broadcasting) beta flatpak build at https://github.com/amazon-contributing/upstreaming-to-obs-studio/wiki/TEB-Beta-Linux-Installation#teb-v40-build. In this case, multiple encodes are running in tandem and the number of "Out of buffers!" messages spikes in addition to the render lag count. While the stream is still running in this case, simply disabling all but 1 (any 1) pipewire capture from view stops the error messages and render lag counts.