Note 20 Ultra has a secret 96hz display refresh rate - Here is how to enable it

Search This thread

DigDub

Member
Feb 18, 2010
16
19
I've tried the app for s20 and it does limit the max refresh rate to 96hz if I choose that option. HOWEVER, there's no VRR. This can be confirmed by going to a website that shows your current screen refresh rate, like displayhz.com. It will always stay at 96hz even if nothing is moving on the screen.

I did a adb shell dumpsys display and roughly got a clue. The min_refresh_rate is also set to the chosen hz when using the s20 app, so the min and max refresh rates are the same (i.e. no VRR).

To get VRR and 96hz, there is a need to use the manual adb command until someone else comes up with an app.

The adb command is:
adb shell settings put system peak_refresh_rate 96.0

There is no need to set the min_refresh_rate as required for s20 since it will lock the min refresh rate.

Running adb shell dumpsys display returned the following:

Using the s20 app to set the refresh rate
#14 << 08-27 09:28:48.694 >>
[DisplayModeDirector] Schedule to change allowedModes=[4, 8], displayId=0
-1:
PRIORITY_REFRESH_RATE_MODE -> Vote{width=-1, height=-1, minRefreshRate=48.0, maxRefreshRate=120.0}
PRIORITY_USER_SETTING_PEAK_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=96.0}
PRIORITY_USER_SETTING_MIN_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=96.0, maxRefreshRate=Infinity}
SettingObserver mRefreshRateMode: REFRESH_RATE_MODE_SEAMLESS, mIsLowPowerModeEnabled: false
AppRequestObserver mLastAppRequestModeReason: NONE, mLastAppRequestModeReasonType: NONE_TYPE
BrightnessObserver mLowPowerModeEnabled: false, mHasLightSensorListener: false, mIsWirelessCharging=false

Using adb shell command to set the refresh rate
#15 << 08-27 09:58:11.156 >>
[DisplayModeDirector] Schedule to change allowedModes=[1, 2, 4, 5, 6, 8, 9, 10], displayId=0
-1:
PRIORITY_REFRESH_RATE_MODE -> Vote{width=-1, height=-1, minRefreshRate=48.0, maxRefreshRate=120.0}
PRIORITY_USER_SETTING_PEAK_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=96.0}
PRIORITY_USER_SETTING_MIN_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=Infinity}
SettingObserver mRefreshRateMode: REFRESH_RATE_MODE_SEAMLESS, mIsLowPowerModeEnabled: false
AppRequestObserver mLastAppRequestModeReason: NONE, mLastAppRequestModeReasonType: NONE_TYPE
BrightnessObserver mLowPowerModeEnabled: false, mHasLightSensorListener: false, mIsWirelessCharging=false

To confirm that VRR is indeed running correctly, go to displayhz.com and you can see the refresh rate is 60hz when nothing is moving on the screen. Touch the screen and it will spike to 96hz.
 
  • Like
Reactions: Manson79 and pcriz

DigDub

Member
Feb 18, 2010
16
19
I didn't get to try the refresh rate prior using the app, so I can't say for sure if VRR was broken in the out-of-the-box adaptive rate setting. Maybe someone who hasn't installed the app yet can try see the refresh rate from displayhz.com website and see if it fluctuates accordingly, or if it's fixed.
 

pcriz

Senior Member
I didn't get to try the refresh rate prior using the app, so I can't say for sure if VRR was broken in the out-of-the-box adaptive rate setting. Maybe someone who hasn't installed the app yet can try see the refresh rate from displayhz.com website and see if it fluctuates accordingly, or if it's fixed.


Mine never drops on the webpage. Stays at about 119.6 without me touching the screen.
 
  • Like
Reactions: Manson79

AllAboutTech

Senior Member
Feb 17, 2011
1,461
670
Bucharest
I mean the app doesn't say battery saver. People assumed it would. The app says it will change your refresh rate. It does that.

the purpose of this app ia the following:
• it sets the higher refresh rate feom 120hz to only 96hz
• the inbuilt adaptive refresh rate then will work from 1hz to only up to 96hz

This means that the battery life gets improved on 96hz over 120hz.
No one said it is battery saver or reinventing the wheel!
I use this and I am pretty happy with the battery life and performance.
 

pcriz

Senior Member
the purpose of this app ia the following:
• it sets the higher refresh rate feom 120hz to only 96hz
• the inbuilt adaptive refresh rate then will work from 1hz to only up to 96hz

This means that the battery life gets improved on 96hz over 120hz.
No one said it is battery saver or reinventing the wheel!
I use this and I am pretty happy with the battery life and performance.

I don't know why you are quoting me. I mean did you even read what I said? Or what I quoted?

Someone said the app is a piece of **it because no one was seeing significant battery savings. I simply stated that the app does exactly what it says it does. Which is exactly what you just repeated bud.
 

Manson79

Senior Member
Feb 5, 2015
303
409
44
Mine never drops on the webpage. Stays at about 119.6 without me touching the screen.
Hi,
Same here, stuck at about 96 or 120 when I choose in the app, now same thing when I use adaptive smoothness from settings. It was not the case before I use the app... So I guess adaptive smoothness is no longuer working?
 
  • Like
Reactions: Saturny

pcriz

Senior Member
Hi,
Same here, stuck at about 96 or 120 when I choose in the app, now same thing when I use adaptive smoothness from settings. It was not the case before I use the app... So I guess adaptive smoothness is no longuer working?
I'm going to try the command the other user mentioned and see if it fixes it. Otherwise I might factory reset.
 
  • Like
Reactions: Manson79

AllAboutTech

Senior Member
Feb 17, 2011
1,461
670
Bucharest
I don't know why you are quoting me. I mean did you even read what I said? Or what I quoted?

Someone said the app is a piece of **it because no one was seeing significant battery savings. I simply stated that the app does exactly what it says it does. Which is exactly what you just repeated bud.

i quoted you because you quoted him, no other reason.
 

DigDub

Member
Feb 18, 2010
16
19
I'm going to try the command the other user mentioned and see if it fixes it. Otherwise I might factory reset.

You can just key in this adb shell command:
adb shell settings put system peak_refresh_rate 96.0

I did not input anything for the min_refresh_rate, it got reset to 0 on its own after I set the peak refresh rate.

VRR works after that and is capped at 96hz.
 
  • Like
Reactions: ruebarb and pcriz

pcriz

Senior Member
You can just key in this adb shell command:
adb shell settings put system peak_refresh_rate 96.0

I did not input anything for the min_refresh_rate, it got reset to 0 on its own after I set the peak refresh rate.

VRR works after that and is capped at 96hz.

Command worked. I had to reboot. I capped back at the default. I probably won't mess with the app again until someone accounts for the issue.
 

Kiran-Kumar

Senior Member
Apr 25, 2017
653
165
Bangalore
No need of running the adb command, just go to display settings and switch to standard and then to adaptive motion smoothness.
This will release the lock and enable adaptive/variable refresh rate again.
If we manually run adb command or through the app the motion smoothness is set to 'high', which means both min and peak are locked to the same value.
 

pcriz

Senior Member
No need of running the adb command, just go to display settings and switch to standard and then to adaptive motion smoothness.
This will release the lock and enable adaptive/variable refresh rate again.
If we manually run adb command or through the app the motion smoothness is set to 'high', which means both min and peak are locked to the same value.
Mine never changed, I went from standard and back. 120 ran constantly. Had to run the command.

Op was mistaken on two accounts. Saying it maintained the VRR and that it scaled from 1hz up.
 
Last edited:

andkovt

New member
Aug 17, 2020
1
0
I noticed something interesting when running "adb shell dumpsys display"
Code:
mVotesByDisplay:
    -1:
      PRIORITY_REFRESH_RATE_MODE -> Vote{width=-1, height=-1, minRefreshRate=48.0, maxRefreshRate=120.0}
      PRIORITY_USER_SETTING_PEAK_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=120.0}
      PRIORITY_USER_SETTING_MIN_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=Infinity}
      PRIORITY_LOW_BRIGHTNESS -> Vote{width=-1, height=-1, minRefreshRate=120.0, maxRefreshRate=120.0}
  SettingsObserver
    mDefaultPeakRefreshRate: 120.0
    mRefreshRateMode: REFRESH_RATE_MODE_SEAMLESS
    mIsLowPowerModeEnabled: false
  AppRequestObserver
    mAppRequestedModeByDisplay:
    mLastAppRequestModeReason: NONE
    mLastAppRequestModeReasonType: NONE_TYPE
  BrightnessObserver
    mLowPowerModeEnabled: false
    mHasLightSensorListener: true
    mAmbientLux: 10.576586
    mIsWirelessCharging: false
    mDisplayBrightnessThreshold: 0
    mDisplayBrightnessThreshold: 0
    mAmbientBrightnessThreshold: 40
    mAmbientBrightnessThreshold: 7400

There is a low ambient brightness threshold and if the ambient light is below it the screen becomes locked at 120Hz. After flashing a flashlight at the screen refresh rate dropped to 60Hz.
When "peak_refresh_rate" is set to 96.0, variable refresh rate seems to work no matter the ambient light level.
 
Last edited:

DigDub

Member
Feb 18, 2010
16
19
No need of running the adb command, just go to display settings and switch to standard and then to adaptive motion smoothness.
This will release the lock and enable adaptive/variable refresh rate again.
If we manually run adb command or through the app the motion smoothness is set to 'high', which means both min and peak are locked to the same value.
It doesn't change for mine. Still gets locked to the hz that is selected in the app if I switch to standard and back to adaptive. Have to use the manual adb command to set the peak refresh rate, leave the min refresh rate alone so that it remains at 0 and the VRR can do its work. The app locks both the peak and min refresh rates to the same, hence VRR does not kick in.
 
  • Like
Reactions: ruebarb

AllAboutTech

Senior Member
Feb 17, 2011
1,461
670
Bucharest
I noticed something interesting when running "adb shell dumpsys display"
Code:
mVotesByDisplay:
    -1:
      PRIORITY_REFRESH_RATE_MODE -> Vote{width=-1, height=-1, minRefreshRate=48.0, maxRefreshRate=120.0}
      PRIORITY_USER_SETTING_PEAK_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=120.0}
      PRIORITY_USER_SETTING_MIN_REFRESH_RATE -> Vote{width=-1, height=-1, minRefreshRate=0.0, maxRefreshRate=Infinity}
      PRIORITY_LOW_BRIGHTNESS -> Vote{width=-1, height=-1, minRefreshRate=120.0, maxRefreshRate=120.0}
  SettingsObserver
    mDefaultPeakRefreshRate: 120.0
    mRefreshRateMode: REFRESH_RATE_MODE_SEAMLESS
    mIsLowPowerModeEnabled: false
  AppRequestObserver
    mAppRequestedModeByDisplay:
    mLastAppRequestModeReason: NONE
    mLastAppRequestModeReasonType: NONE_TYPE
  BrightnessObserver
    mLowPowerModeEnabled: false
    mHasLightSensorListener: true
    mAmbientLux: 10.576586
    mIsWirelessCharging: false
    mDisplayBrightnessThreshold: 0
    mDisplayBrightnessThreshold: 0
    mAmbientBrightnessThreshold: 40
    mAmbientBrightnessThreshold: 7400

There is a low ambient brightness threshold and if the ambient light is below it the screen becomes locked at 120Hz. After flashing a flashlight at the screen refresh rate dropped to 60Hz.
When "peak_refresh_rate" is set to 96.0, variable refresh rate seems to work no matter the ambient light level.

more exactly please?!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 12
    Hi All,

    Seems like Samsung has added some trick to their Note 20 Ultra, beside the Adaptive refresh option.
    = Galaxy Note 20 Ultra has a hidden 96Hz display mode=

    Normally, adaptive refresh rate from display sesstings in Galaxy Note 20 Ultra allows the phone, based on the actual open application to refresh the screen from 1hz up to 120hz.
    With this 96hz hidden option you can restrict the adaptive refresh rate to work from 1hz up to 96hz allowing your phone to prolong battery life.


    https://www.sammobile.com/news/galaxy-s20-96hz-refresh-rate-mode/amp/

    https://labs.xda-developers.com/store/app/sszb.s20.refresh

    [{id=1, width=1440, height=3200, fps=60.000004},
    {id=2, width=1440, height=3200, fps=48.0},

    {id=3, width=1080, height=2400, fps=120.00001},
    {id=4, width=1080, height=2400, fps=96.00001},
    {id=5, width=1080, height=2400, fps=60.000004},
    {id=6, width=1080, height=2400, fps=48.0},

    {id=7, width=720, height=1600, fps=120.00001},
    {id=8, width=720, height=1600, fps=96.00001},
    {id=9, width=720, height=1600, fps=60.000004},
    {id=10, width=720, height=1600, fps=48.0}]

    everyone says it is working. check and comment.
    cheers.
    4
    Nice! but why do this? Imagine spending so much money on a phone to run it at 96hz
    If it's anything like the S20U then it surprisingly makes a significant difference in battery life, and can not tell the difference between 96hz and 120hz. On my S20U I got almost 2hrs more SOT running 96hz. Will give my Note 20U a couple weeks before I post results on the Note20U though.
    3
    Thanks OP...working Note 20 Ultra

    Sent from my SM-N986U using Tapatalk
    3
    Silly question....does this affect the ability for the screens refresh rate to tunnel down ? Example being samsung said the screen Will and can go as low as 1hz refresh when it can to save power?

    Still has vrr
    2
    based on the latest battery comparations between Note 20 Ultra with 4500mha and S20 Ultra with its 5000mha battery, the Note 20 Ultra adaptive display refresh rate managed to have the same battery life as S20Ultra even though it is short with 500mha.

    Enableling the hidden 96hz mode in FHD+, Note 20 Ultra battery life will be even longer.
    Cheers.