RPCS3 / rpcs3

PS3 emulator/debugger
https://rpcs3.net/
GNU General Public License v2.0
15.27k stars 1.9k forks source link

[Feature request] System wide low latency audio toggle #15290

Open yamaci17 opened 6 months ago

yamaci17 commented 6 months ago

Quick summary

RPCS3 windows audio latency toggle

Details

Hello, I have a ryzen 7 2700x and an msi b450 board. When I open RPCS3, I start to get system wide audio crackles from youtube to discord chat, to everything. Mind you, this happens just by opening RPCS3 and not running any game at all.

I've tracked down the issue to RPCS3 setting audio buffer/latency to 2.7 ms instead of the windows default of 10.0 ms. Apparently my CPU cannot handle 2.7 ms because there's another application that can force games to use 2.7 ms audio latency: Special K. When I try that option in Special K in other games (actual PC games) and force 2.7 ms of audio latency, I get the exact same audio crackle issue on my system.

Then I decided to use Special K's audio latency report tool to see what is going on. When RPCS3 is not running it is 10.0 ms as expected. The second I open RPCS3, the audio latency is being set to 2.7 ms by RPCS3. When I turn off RPCS3, it goes back to 10.0 ms.

I tried to look for settings in RPCS3 but couldn't stop RPCS3 from setting audio latency to 2.7 ms.

I've come to believe when RPCS3 detects low latency audio is possible, it activates. But sadly, my CPU cannot handle it, even when no game is running at all. I would like if you add an option to make this feature toggleable

Megamouse commented 6 months ago

what if you change the audio handler

yamaci17 commented 6 months ago

what if you change the audio handler

I've tried pretty much all options in the Audio tab, sadly I cannot get rid of the problem. Only way to get rid of this problem is to have an audio device/driver that does not support 2.7 ms low latency audio. When I connect my headset to my monitor, and let the audio run through my Displayport cable, I get normal audio as usual with RPCS3. I've also tested and saw that the option to minimize audio latency does not present itself in Special K's UI. In other words, my system does not support 2.7 ms/low latency audio when I get sound through my monitor but does when I connect my headset directly to the mainboard. When I can assuredly say that RPCS3 triggers 2.7 ms system wide audio latency when it is open.

Problem specifically occurs when the device/driver is capable of 2.7 ms of audio, in other words.

KaijuChomps commented 6 months ago

Would be interested in seeing this toggle be added. I think it would be good for the Performance Overlay to incorporate a simple status display for the functionality too. For me, I'd personally like to always ensure that its engaged and quirks in my desktop audio setup often mean it doesnt enable and I get stuck at 10ms. Would be useful for testing and diagnostics to see in plain terms if its engaged.

also @yamaci17, I suppose as a temporary solution (as long as low latency isn't absolutely critical for you even with the 10ms buffer size) you can engage Windows Sonic spatial audio. In my experience the low latency system doesn't get used at all with Spatial Audio enabled, and Sonic won't actually do anything with RPCS3 unless you go out of your way to enable surround audio output. Just a thought for another work around.