Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Issue]: Exynos handset high latency (30ms)/intermittent stutters caused by latency #1370

Closed
slckcskn852 opened this issue May 31, 2024 · 4 comments
Labels

Comments

@slckcskn852
Copy link

Describe the bug

Got a peculiar issue probably only on Exynos handsets. So the issue is the decode latency on my s24+ seems to be around 20-30 ms which introduces intermittent stutters but, the moment you start screen recording at the same time while moonlight is still displaying the stream this decoding latency goes from 30 to sub 10 ms. This issue pops up in 3rd party PS remote play apps as well. I don't encounter this issue on Parsec which renders the stream in either OpenGL or Vulkan. I have a guess where if there's something that's working the gpu the decoding latency seems to go down. What is the renderer of Moonlight? Do I have an option to configure it? I don't know enough to make an educated comment on the issue but I am thinking if the stream is drawn in an opengl container or vulkan container it should trick the gpu into actually working? I'd appreciate any input. Thanks!

I have already reported this issue to Samsung. I've discovered this Screen Recording "fix" from this thread: https://www.reddit.com/r/cloudygamer/comments/129h1a9/moonlight_30ms_decoding_time_samsung_s22_ultra/

If possible I'd like information on how to render Moonlight in OpenGL/Vulkan or try to come up with a fix for this because this affects all exynos handsets looks like. I'd once again like to point out, Parsec which has these renderer options does not run into this issue and works flawlessly.

Screen recording attached to demonstrate the drastic decode improvement upon screen recording.

Screen_Recording_20240519_174629_Moonlight.mp4

Steps to reproduce

  1. Launch moonlight stream like normal
  2. Have latency around 20-30ms with stutters because of it
  3. Start screen recording to lower latency
  4. Latency drops down to sub 10ms
  5. Stop screen recording
  6. Latency jumps back up to 20-30ms with stutters

Affected games

Affects any and all device streaming apps. Exynos incompatibility.

Other Moonlight clients

PC

Moonlight adjusted settings

Yes

Moonlight adjusted settings (please complete the following information)

This issue is config agnostic

Resolution: 2560x1440
FPS: 60

Moonlight default settings

Yes

Gamepad-related connection issue

No

Gamepad-related input issue

Yes

Gamepad-related streaming issue

Yes

Android version

Android 14

Device model

Samsung Galaxy S24+ (Exynos)

Server PC OS version

Windows 11 23H2

Server PC GeForce Experience version

Nvidia App version 10.0.0.535/p

Server PC Nvidia GPU driver version

555.85

Server PC antivirus and firewall software

Windows Defender

Screenshots

No response

Relevant log output

No response

Additional context

I firmly believe this is an Exynos issue that can be circumvented by rendering in an OpenGL or Vulkan container if possible.

@yungleballz
Copy link

#1285 (comment)

@polacchini
Copy link

I have reproduced the same effect.
Screen recording off, decoding time: ~17ms and continuous stutters. Render FPS ~90% of incoming FPS
Screen recording on, decoding time: ~11ms, stutters not perceptible. Render FPS ~98% of incoming FPS
Screen recording off, static scene being displayed on host PC, decoding time: ~25ms

VID-20240618-WA0002.mp4

I've read elsewhere that it could correlate with variable refresh rates implemented since android 12. My device also has VRR and can't be overridden AFAIK, although in the example reported refresh rate for the screen does not change from 60hz.

I also have most parameters the same, except for:

Moonlight adjusted settings:
2560x1600
60 fps
frame pacing balanced (Happens in all modes)
Bitrate: 35 Mbps (Happens with all bitrates)
Codec: HEVC (Happens with all codecs)

Device model: Samsung Galaxy Tab S9 FE+ (Exynos 1380)
Server Sunshine Version: v0.23.1 (also happens in v0.21)

@slckcskn852
Copy link
Author

Using Version v2024.617.2357 of Sunshine paired with the Google Play version of Moonlight has eliminated the problem for me. This issue persists on other apps (PSPlay, Other 3rd party streaming alternatives), but seems to be fixed on moonlight+sunshine Version v2024.617.2357

@alonso-cr0
Copy link

I copied from another thread

Hello everyone, I bring you a temporary solution for the stuttering problem when streaming on the S24+. I saw in the thread that they recommended recording the screen while playing, and this could work. Indeed, I tried it, and it worked. In my case, it reduced the latency of video decooding from 12ms to 5ms. However, I think this unnecessarily wears out the device. Therefore, I started looking for another application that could achieve a similar result to recording the screen. What I found is that if the CPU-Z app runs in the background, it completely eliminates the stuttering problem. It should be noted that sometimes it doesn’t work the first time, so you have to open and close both Moonlight and CPU-Z. In my case, I programmed a routine (with the automation functions found in the phone settings) that makes CPU-Z open Moonlight and set the phone to maximum performance every time it opens. This way, I only have the CPU-Z shortcut on the desktop, and this solved the stuttering problem, but not the latency. The video decoding latency is still around 13ms. I hope this helps and that you can enjoy your remote gaming sessions.

Here is the download link for CPU-Z.
https://play.google.com/store/apps/details?id=com.cpuid.cpu_z&pcampaignid=web_share

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants