-
Notifications
You must be signed in to change notification settings - Fork 15
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]: Hwcomposer deliberately dropping 1/2 of all frames on new TVs with Mediatek Pentonic socs #64
Comments
Does changing frame pacing do any difference? Please note that debugging this issue requirs purchasing a relatively expensive TV, and I have no plans replacing my LG TV that I'm very happy with right now, what I can do is providing some generic ideas for such issues. Further and deeper investigation is not possible without physical access to a device with the same issue. IIRC Moonlight tries to squeeze out the lowest possible buffer time so it's using a relatively small frame queue, but that shouldn't be the problem unless MTK cannot handle this usage that all other SoCs support. You may also ask support from MTK either at the same time. |
Hi! I have recently bought a TCL c805 and I have the same issue, which makes using game streaming not viable. I am willing to help debug or confirm anything you need in order to fix the problem. |
I found the fix. Just disable location service in Google TV setting. |
In my case, I can confirm that I have that setting disabled from the beginning. Are you sure there is nothing else you have changed? |
I think so. Previously, the image stuttered every second. When I checked stream statics, I found packet loss was up to 10%. After toggling the location feature, this issue disappeared, and the stream became smoother as packet loss dropped to 0%. |
Describe the bug
Although this issue has appeared in Moonlight/Sunshine, it still persists when I switch to Artemis/Apollo. I am reposting this issue from Moonlight's GitHub.
When running Moonlight on a TV with a Mediatek Pentonic soc, the output video stream is displayed at half the refresh from what is intended. With Moonlights refresh rate set to 60/90/120, since Moonlights rendering framerate is capped at 60FPS on Google TV, this results in the video stream never outputting over 30Hz. On 30Hz refresh rate it outputs 15Hz. Note this issue only happens with Moonlight, other apps including Steam Link work fine.
These socs are the next generation soc introduced this year, and above is the only major issue experienced. All rendering stats are perfect, including latency and rendering frame rate. The decoding time is very low on this new soc (for a TV). But the actual video stream presented to the TV screen is only half the refresh rate of what is logged in the stat window.
Using the testufo frame skipping checker we can confirm the problem.
Photo of the host machine:
Photo of another Android client without any problems:
Photo of client affected by this issue:
As you can see on the last photo exactly half of the frames is skipped, resulting in the alternating pattern of the grey boxes.
Looking in the ADB logs, the issue is also revealed with this log:
I PqLink : frameRateControl : PqId[0] out_frame_rate 60000, in_frame_rate 120000, gcd 60000 => 1/2
And then a variation of the following outputted every other frame:
E PqLink : frameRateControl : PqId[0] Drop input index 4 with frm_idx 42003 by factor (1/2)
The offending process turns out to be:
system 578 1 226592 73676 0 0 S [email protected]
The full ADB log of this process has been pasted in the relevant log output section of this issue.
My own understanding: it seems like there is a configuration mismatch or incorrect logic in determining input/output frame rates in the communication between Moonlight and the OS, resulting in the OS incorrectly thinking it needs to drop half of all frames to reach 60Hz.
Steps to reproduce
Run Moonlight on a recent Google TV that is equipped with a new generation Mediatek Pentonic soc.
It is highely likely a problem on all 2024 lineup Sony TVs + the Sony Bravia A95L (all Sonys with the Pentonic).
There have also been reports on bad perceived performance on TVs from other brands running the Pentonic, this pertains to some Hisense, Philips, and TCL TVs.
Confirmed affected devices: (my own TV + reports I have received from other users having the same issue confirmed with logs)
Sony Bravia 7 (Mediatek Pentonic 1000)
TCL C805/C755 (Mediatek Pentonic 700)
Affected games
Any game
Other Moonlight clients
None
Moonlight adjusted settings
None
Moonlight adjusted settings (please complete the following information)
This problem persists through any possible permutation of all possible Moonlight settings, even all the frame/refresh related settings.
Moonlight default settings
Yes
Gamepad-related connection issue
Yes
Gamepad-related input issue
Yes
Gamepad-related streaming issue
Yes
Android version
Google TV 12
Device model
TCL C805/C755
Server PC OS version
Windows 11 24H2
Server PC GeForce Experience version
No response
Server PC Nvidia GPU driver version
No response
Server PC antivirus and firewall software
No response
Screenshots
No response
Relevant log output
Additional context
No response
The text was updated successfully, but these errors were encountered: