feat: add mini performance overlay and GPU composition toggle for Android TV#429
feat: add mini performance overlay and GPU composition toggle for Android TV#429PacificSilent wants to merge 1 commit into
Conversation
|
Thank you for the contribution, but this might not be needed when a bug in frame timing is fixed. I'll leave this PR open for now in case it doesn't fix the problem. |
|
I am still seeing unplayable stutters on mi TV Stick 4k gen 2 on the latest release and the latest beta. Toggling the overlay makes it butter smooth |
|
Tried building your branch, now it works very well (2k 60fps with no stutters). Thank you! This little fix should definitely be merged. |
|
Where can I download the APK with these changes? I don't have any programming knowledge, but I'd like to use this modified version. |
This release contains the code from the author of this pull request: https://github.com/Nun-z/moonlight-android/releases/tag/Test-1 |
thank you so much |
Force GPU Composition for Android TV + Mini Performance Overlay
Summary
This PR adds two features to improve the Android TV experience:
Force GPU Composition
Problem it solves
On Android TV, some devices experience frame synchronization issues that cause:
Solution
Adds an invisible
TextViewthat forces Android to use GPU composition instead of hardware overlays, improving frame synchronization.Implementation:
activity_game.xmlWhen to enable:
Modified files
app/src/main/res/layout/activity_game.xml- Invisible TextViewapp/src/main/java/com/limelight/Game.java- Visibility controlapp/src/main/java/com/limelight/preferences/PreferenceConfiguration.java- Configapp/src/main/res/xml/preferences.xml- UI settingsapp/src/main/res/values/strings.xml- StringsMini Performance Overlay
Features
BW: 109M/s PL: 0% Net: 7ms | Dec: 109ms XX.XX FPSDisplayed metrics
Modified files
app/src/main/res/layout/activity_game.xml- Overlay TextViewapp/src/main/java/com/limelight/Game.java- Metrics updateapp/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java- FPS trackingapp/src/main/java/com/limelight/preferences/StreamSettings.java- Mutual exclusionapp/src/main/res/xml/preferences.xml- UI settingsapp/src/main/res/values/strings.xml- StringsTechnical Changes
MediaCodecDecoderRenderer.java
Game.java
StreamSettings.java
Testing
Force GPU Composition:
Mini Overlay:
Compatibility
✅ Android TV (main beneficiary)
✅ Standard Android devices
✅ Backward compatible