feat: add mini performance overlay and GPU composition toggle for Android TV #429
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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