moonlight-stream / moonlight-qt

GameStream client for PCs (Windows, Mac, Linux, and Steam Link)
GNU General Public License v3.0
10.98k stars 639 forks source link

Steam Link: audio stuttering, log message: SDL Info (0): Too many queued audio frames #431

Closed igno2k closed 3 years ago

igno2k commented 4 years ago

Describe the bug I'll get audio stuttering on the steam link device with moonlight. Tested different steam link devices, settings, GFE versions and TVs.

Steps to reproduce Play for a while and get audio stuttering on different games. Some games/applications do not to have this problem.

Affected games Examples: Rocket League, Lego Worlds

Other Moonlight clients No problem with Linux Client or Android Client.

Moonlight settings (please complete the following information) 1080p/60fps/40MBit vsync off 5.1 Audio decoding auto

Tried to lower settings to 30 MBits and stereo audio without luck.

Client PC details (please complete the following information)

Server PC details (please complete the following information)

Moonlight Logs (please attach) log from /tmp/moonlight.log attached moonlight.log

cgutman commented 4 years ago

Is your Steam Link connected to WiFi or Ethernet?

igno2k commented 4 years ago

All Steam Links are connected via Ethernet (1 GBit). Maybe it is a performance problem on the Steam Link? It has a very high load (>4 avg).

cgutman commented 4 years ago

Yeah, the Steam Link tends to be CPU bound in most situations. The WiFi driver tends to consume quite a bit of CPU as well (hence my original question). 30 Mbps with 5.1 over Ethernet should work (though just barely). It did when I tried it a few months ago during the pre-release testing of v2.1.0.

What are the highest CPU consumers in top?

igno2k commented 4 years ago

./bin/PE_Single_CPU and ./bin/moonlight are both each using more than 45% constantly. I am not sure why PE_Single_CPU eats so much CPU. Is there any way to tune the Steam Link by disabling not needed services, like WiFi?

igno2k commented 4 years ago

What's really strange: it only happens with certain games. I just played Assassins Creed - Syndicate on the very same device over an hour without any problem. No entries in the log file. No change in moonlight settings or on the serverside.

igno2k commented 4 years ago

I did some further investigation: problem only occurs on certain games and only when using a controller connected via USB. Same game with Bluetooth controller (XBOX One S) working perfectly fine. Disconnecting session and playing with XBOX 360 via USB wireless dongle or XBOX One Controller via USB cable is causing audio stuttering.

So maybe we have a problem with the USB subsystem on the Steam Link?

Some log entries from dmesg: [ 4900.932000] wlan: SCAN COMPLETED: scanned AP count=8 [ 4934.702582] Over flow: idx_chan_stats=45, num_in_chan_stats=45 [ 4958.591226] input: Xbox 360 Wireless Receiver (XBOX) as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input2 [ 4985.660760] input: Xbox 360 Wireless Receiver (XBOX) as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input3 [ 4986.294486] input: Xbox 360 Wireless Receiver (XBOX) as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input4 [ 5197.168166] wlan: mlan0 START SCAN [ 5200.906951] wlan: SCAN COMPLETED: scanned AP count=7 [ 5329.479488] power_supply hid-c8:3f:26:90:a6:db-battery: driver failed to report capacity' property: -5 [ 5460.302821] input: Xbox 360 Wireless Receiver (XBOX) as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input5 [ 5466.462080] input: Xbox 360 Wireless Receiver (XBOX) as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input6 [ 5467.012767] input: Xbox 360 Wireless Receiver (XBOX) as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input7 [ 5497.222649] wlan: mlan0 START SCAN [ 5500.943192] wlan: SCAN COMPLETED: scanned AP count=7 [ 5535.109694] Over flow: idx_chan_stats=45, num_in_chan_stats=45 [ 5609.202022] input: Xbox 360 Wireless Receiver (XBOX) as /devices/soc.0/f7ee0000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input8 [ 5626.089361] microsoft 0005:045E:02FD.0007: unknown main item tag 0x0 [ 5626.173818] power_supply hid-c8:3f:26:90:a6:db-battery: driver failed to reportcapacity' property: -5 [ 5626.176260] input: Xbox Wireless Controller as /devices/virtual/bluetooth/hci0/hci0:1/input9 [ 5626.188819] microsoft 0005:045E:02FD.0007: input,hidraw5: BLUETOOTH HID v9.03 Gamepad [Xbox Wireless Controller] on e0:31:9e:17:67:47 [ 5626.195773] power_supply hid-c8:3f:26:90:a6:db-battery: driver failed to report `capacity' property: -5

igno2k commented 4 years ago

Update: The issue is definitely related to USB driver or subsystem. Using two controller connected via Bluetooth (XBOX One S + PS4) are working flawlessly. Switching to an USB connected controller (XBOX 360 with wireless adapter, XBOX One S connected via USB) is causing audio stuttering. Streaming needs to be restarted and USB controller disconnected, to work again.

Is it possible to get more debug output from moonlight to further investigate in this issue? I don't see any other related log entries in moonlight.log, dmesg output or other system logs.

cgutman commented 4 years ago

What sort of logging are you looking for? Moonlight's logs are already pinpointing the problem: audio playback is too slow for the rate of the incoming audio stream. To get more detailed performance information, you'll need to use something like the Linux perf tool.

igno2k commented 3 years ago

I think we can close this. I have still no real resolution for this. Since it is working flawlessly with a bluetooth controller (like XBOX One) I am happy :)