Tautulli / Tautulli-Remote

Tautulli companion app.
http://tautulli.com/
GNU General Public License v3.0
140 stars 17 forks source link

Override some phones forcing app into lower refresh rates. #194

Closed Jopo-JP closed 1 month ago

Jopo-JP commented 1 year ago

Is your feature request related to a problem?

I noticed, that the app only refreshes at 60HZ but I do have a 120HZ Display.

Screenshot_2023-02-06-20-25-26-02_a35044d8433eb43c3c315fd8cbf2c186

What is your feature request?

Use the higher Refresh Rate of the Display.

Otherwise there it feels weird if you are used to 120HZ navigation and scrolling. It just feels a lot smoother.

Are there any workarounds?

No response

Additional Context

Android 13 OnePlus 9 Pro

Probably on all devices which are using a high HZ Display.

The same applies to the current build and the Alpha build of the app.

TheMeanCanEHdian commented 1 year ago

@Jopo-JP just verifying this is on Android? If so what Android phone?

Jopo-JP commented 1 year ago

@Jopo-JP just verifying this is on Android? If so what Android phone?

Oh my bad. Yes on Android 13. I used the Alpha 20 of the V3 of Tautulli.

Im using a OnePlus 9 Pro.

TheMeanCanEHdian commented 1 year ago

Thank you. I think the issue is related to https://github.com/flutter/flutter/issues/35162. Specifically:

We have heard back from One plus, here are their official recommendation:

  1. OnePlus 7 Pro currently use a 90Hz high-frame-rate screen. This screen can work in multiple modes: -> High frame rate mode can provide a UX smooth experience; -> Low frame rate mode can save power. In order to balance performance and power consumption, we customized our own frame rate control logic based on Android native logic. Generally, the screen will work at a high frame rate, but in certain scenarios, the system will switch the screen to a low frame rate. Due to the introduction of this mechanism, there may be a problem that the app wants the screen to run at a high frame rate, but is forced to be set to a low frame rate by the system.
  2. How to set fps rate by app itself? If an app needs to set the frame rate. First, getSupportedModes() gets the list of supported modes on this screen, then iterates through the list, finds the modeId according to the desired resolution and refresh rate, and assigns it to the preferredDisplayModeId of the window. So when the app is in the foreground, the screen will work in the desired mode.

It does appear someone worked on a package to try and override this behavior. However, I am not sure if I want to be forcibly overriding the OS. I assume this would prevent the refresh rate from dropping back down when not scrolling which might not be ideal. Though the likely battery impact from this is probably minimal and perhaps worth doing.

I'll look at testing this some time in the future as I have access to a OnePlus 7T.

Jopo-JP commented 1 year ago

Sounds after fun. Lucky, this isn't app breaking or anything but simply a little UX experience boost and the app fell a bit smother while scrolling.

It's not like 60HZ is bad but 120HZ feels a lot smoother and more and more devices support these higher Refresh Rate.

I will be happy to report back if there is a test build in the far future.

TheMeanCanEHdian commented 1 month ago

I've decided that at this time I do not want to forcibly override the native OS behavior. I will make an exception if major performance or reliability impacts show up and this would be the only fix.