-
Notifications
You must be signed in to change notification settings - Fork 751
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]: very bad stutter on s22 ultra with exynos #1285
Comments
would logcat help? |
So I powered on my old phone, xiaomi mi 9. |
I also notice this on my samsung a51 and chromecast tv, but not on my x86 based steam deck. |
According to what I read here : Exynos should support both c2 and omx and moonlight should pick omx because it supports low latency, yet for some reaason it seems c2 is picked. |
Logcat from both moonlight and parsec attached |
I've looked at the logs myself and I don't make much sense of them, but I feel tha the low-latency flag is set, not sure if it's done correctly as 20+ ms decoder latency isn't low at all. |
noticed that if I screen record while Moonlight is streaming, the decoding time goes down to 10ms and even below. here's a video recording: and this screenshot is a few seconds after I stop the recording it's almost like screen recording causes low latency mode to really enable. and here's a parsec decoding latency...close to 1ms (and that's with hevc which according to codec info should not support low latency mode on this device) if parsec isn't lying there seems low latency can be achieved somehow. |
I have the same issue on the new S24 Plus. 10ms of decoding latency using c2.exynos.hevc.decoder. Parsec, on the other hand, shows 4ms of Decode using HEVC at 1080p, which results in a much better experience latency-wise. I'm not sure what decoder Parsec is using but the issue doesn't seem to be Exynos SoCs after all if Parsec can get low decoding times. I also can't see any OMX decoders using Codec Info, only c2. I should also note that screen recording while using Moonlight lowers the latency to 6ms, somehow. |
5ms is not a perceptible difference, certainly not to the extent that you would clearly and obviously notice it. What you're actually feeling is SurfaceFlinger composition and display latency which is not measured by either Parsec or Moonlight in the decoder latency number. The solution is probably to use Vulkan or OpenGL directly to render frames instead of going through MediaCodec. |
I mentioned it in my post as well, yeah. What I do know is that I couldn't play Lies of P properly using Moonlight on Exynos, but I could on Parsec with no issues. |
Sorry. Missed that part of the comment. |
Any idea why screen recording makes decoding times better though? |
Low latency mode requires the decoder not to hold output of a frame more than 1 frame interval (or the codec's coded minimum). Therefore, under 1 frame of decode latency means low latency mode is working fine. Some codecs may do this by default, so those don't expose a separate low latency mode.
It is probably due to DVFS. Moonlight has very low CPU and GPU usage, so it doesn't put the device into higher power modes that have the side effects of also slightly improving decode time. I suggest turning off the performance overlay (to avoid placebo effect) and then seeing if you (or better yet, someone without experience testing either configuration) actually tell a perceptible latency difference between screen recording on and off. |
I started a game (sonic force) split screen with moonlight stream started and decoding time didn't improve at all, if anything it was worse at times. |
Can you tell a difference between recording on and off in terms of latency like cgutman asked? |
it's impossible for me to tell. the stutter I'm experiencing is very bad. |
any improvements that can be made here or I just have to get a new phone that doesn't have exynos? |
I think it is possible to improve, but we'll need to rewrite the video renderer to use Vulkan or OpenGL ES and use the frame pacing library in the Google Game SDK. It's not an easy fix. |
well, if it happens before my next phone it happens, if it doesn't, it doesn't hehe. |
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. |
going to test this, but surely the solution lies in cgutman's hands when he has time |
@alonso-cr0 I've tried almost everything else and I didn't believe this would do anything but it did. Edit: Forgot to say, THANK YOU! |
I have the same problem on my S24+ but the trick to open cpu-z in the background doesn't seem to be working when connecting to an external screen using Dex. Does anyone have a workaround when using Dex? |
Describe the bug
While trying moonlight on my samsung s22 ultra(exynos soc) and me m1 ultra mac I'm met with horrible unwatchable stutter in the game I mostly play: efootball 2024.
Not the same happens with my windows 11 dell notebook.
This is on the same network, same settings.
For the phone and Mac I have used a multiport hub that allows me to connect hdmi and 1000mbit wired networkingn. It's not the hub, because i have tested it on the dell laptop and no issues there. Even tried without the dongle on wifi6e network, all the same. No windows client... Horrible stutter
I'm using the latest version of sunshine on my host and the latest version of moonlight on my mac and s22
While on my Mac things are not perfect as they are on windows, the shutters are not that bad as they are on my s22 ultra
Steps to reproduce
Play on arm device
Affected games
Efootball 2024
Other Moonlight clients
PC
Moonlight adjusted settings
Yes
Moonlight adjusted settings (please complete the following information)
1080p 60fps
Smoothest frame pacing aetting
Moonlight default settings
No
Gamepad-related connection issue
No
Gamepad-related input issue
No
Gamepad-related streaming issue
No
Android version
14
Device model
Samsung galaxy s22 ultra
Server PC OS version
Windows 11 23h2
Server PC GeForce Experience version
Sunshine 0.21
Server PC Nvidia GPU driver version
546.17
Server PC antivirus and firewall software
Bitdefender total security
Screenshots
No response
Relevant log output
What logs should I provide? I'm away from home until monday so I only got the phone at hand for now
Additional context
No response
The text was updated successfully, but these errors were encountered: