Skip to content

Improve non-DDC brightness change dampening smoothness on Apple Silicon #3465

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

Closed
aviwad opened this issue Oct 4, 2024 · 13 comments
Closed
Assignees
Labels
done All tasks are completed enhancement New feature or request released Released
Milestone

Comments

@aviwad
Copy link

aviwad commented Oct 4, 2024

Hi. Great fan of the product. Have purchased BetterDisplay Pro to disable my MacBook display when connected to an external monitor.

However changing my macbook's internal display brightness using the keyboard keys is noticeably more choppy on BetterDisplay than when changing the brightness natively without BetterDisplay. Almost like the brightness change is on a lower... frame rate? If that makes sense. Thanks a lot for the product, I hope the fix is simple.

@waydabber
Copy link
Owner

Hmm. I t should not feel choppy at all but feel perfectly smooth. What frame rate do you approximate? What MBP model are you using?

To revert to the system default, you can simply turn off keyboard control (so let the system handle brightness control) - however in this case you won't be able to control the external display of course using the keyboard (you can still use the slider).

@waydabber waydabber added the awaiting response from reporter Needs further info label Oct 4, 2024
@aviwad
Copy link
Author

aviwad commented Oct 4, 2024

I am using the m3 pro MacBook pro with ProMotion, low power mode disabled. Everything is smooth (not always 120hz but feels like it!)

Model Name:	        MacBook Pro
Model Identifier:	Mac15,6
Model Number:	        MRX33LL/A
Chip:	                Apple M3 Pro

I do not feel like turning off keyboard control is the best solution because I appreciate being able to control the external display. Are there any logs I can supply perhaps? If it helps, the problem occurs regardless of my display preset being set to P3-1600 nits or P3-600 nits.

@aviwad
Copy link
Author

aviwad commented Oct 4, 2024

Update: setting the internal display's refresh rate to 60hz still has the same choppiness problem with BetterDisplay as compared to native control. This also happens regardless of an external monitor being attached or not.

@waydabber
Copy link
Owner

I see. Certainly, with this config there should not be any issues. What if you enable Native XDR upscaling for the display in the app? Can you check that? With that disabled (that is still the default in the app) the app uses software XDR upscaling by default on the panel you have (although it should not do that on P3-600) and in some instances that might maybe cause an issue like this? Also do you use any other app that might interfere with display colors or brightness control?

Can you make a video of the phenomenon maybe (note: make sure you turn off auto brightness level adjustment on your camera so the change is perceivable on camera)?

@waydabber
Copy link
Owner

(note: checked my code, the brightness level adjustment stepping is now set to 25fps (0.04 sec delay/iteration on seek) - so if you have super high-speed camera-like eyes, you might indeed perceive that as choppiness. If you want, I can add an option somewhere to change this setting so you can experiment with it).

@waydabber waydabber changed the title MacBook Pro display brightness change is not as smooth under BetterDisplay Add option to adjust video (and brightness) adjustment change seek step delay (current default is 0.04sec delay/step). Oct 5, 2024
@waydabber waydabber added enhancement New feature or request and removed awaiting response from reporter Needs further info labels Oct 5, 2024
@Bentheminernz
Copy link

@waydabber waydabber self-assigned this Oct 18, 2024
@waydabber waydabber added this to the TBD milestone Oct 18, 2024
@waydabber waydabber added in progress Implementing internal pre-release Enable internal pre-releases under Settings/Applications/Updates labels Oct 18, 2024
@waydabber waydabber changed the title Add option to adjust video (and brightness) adjustment change seek step delay (current default is 0.04sec delay/step). Improve non-DDC brightness change dampening algorithm smoothness on Apple Silicon Oct 18, 2024
@waydabber waydabber changed the title Improve non-DDC brightness change dampening algorithm smoothness on Apple Silicon Improve non-DDC brightness change dampening smoothness on Apple Silicon Oct 18, 2024
@waydabber
Copy link
Owner

Ok, so what I did is to improve the dampening update frequency from 25fps to 60fps on Apple Silicon Macs for

  • Apple hardware brightness control
  • software brightness control methods
  • combined control when it involves Apple hardware control

Remains 25fps on:

  • Intel
  • DDC hardware control
  • Combined control with DDC involved

@waydabber waydabber added done All tasks are completed and removed in progress Implementing labels Oct 18, 2024
@waydabber
Copy link
Owner

waydabber commented Oct 18, 2024

+ tweaked things a bit so the app's dampening curve is more similar to Apple's native BrightnessSmooth curve

@waydabber waydabber added in progress Implementing and removed done All tasks are completed labels Oct 19, 2024
@waydabber
Copy link
Owner

Note: I am still somewhat unsatisfied with the result - will tweak things a bit more and then provide an internal pre-release version to get your feedback whether this is truly an improvement. I will need keen eyes like yours @aviwad and @Bentheminernz for feedback. :)

@waydabber
Copy link
Owner

@aviwad
Copy link
Author

aviwad commented Oct 19, 2024

Much better than before! Certainly an improvement! I'd say it's almost 80% the same, except for the last few 10ths of a second where it has a slightly unsmooth change till the final brightness value. But this is a worthless complaint, I am quite satisfied with the change! I hope there isn't a heavy CPU load associated with this though. 😄

@Bentheminernz
Copy link

Bentheminernz commented Oct 19, 2024

Can you please check whether this is an improvement @Bentheminernz or @aviwad?

https://github.com/waydabber/BetterDisplay/releases/download/pre/BetterDisplay-v3.1.3-b34735.zip

It's considerably better but, I agree with @aviwad the last bit of the animation is still a bit choppy.

@waydabber
Copy link
Owner

All right, tweaked things a bit more. There are some constraints though as the algorithm must accomodate varying brightness management and dimming methods with different characteristics and even combined ones (which might involve crossing between brightness control methods during the transitions, sometimes multiple times). This means that we might need to "manage our expectations". :)

@waydabber waydabber added done All tasks are completed and removed in progress Implementing labels Oct 20, 2024
@waydabber waydabber added pre-release available Released as beta version and removed internal pre-release Enable internal pre-releases under Settings/Applications/Updates labels Nov 22, 2024
@waydabber waydabber added released Released and removed pre-release available Released as beta version labels Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
done All tasks are completed enhancement New feature or request released Released
Projects
None yet
Development

No branches or pull requests

3 participants