waydabber / BetterDisplay

Unlock your displays on your Mac! Flexible HiDPI scaling, XDR/HDR extra brightness, virtual screens, DDC control, extra dimming, PIP/streaming, EDID override and lots more!
https://betterdisplay.pro
20.44k stars 350 forks source link

App stores values of yet untouched DDC controls during auto-configuration - this might cause issues, better keep untouched status #3313

Closed sagieinav closed 2 months ago

sagieinav commented 2 months ago

Edit: This has been solved. Look in the comments section for the solution.

Hi,

I've been using BetterDisplay for like a month, have set a custom configuration for my external LG monitor which is connected to my MacBook Pro M3.

I turned on my external monitor today to find out the picture is so dark to the point it's almost completely black. Yesterday all was working fine, and nothing has changed since then.

The monitor is an LG ultrawide monitor connected to the MacBook via DP to USB-C cable. Also tried two different HDMI cables but still the same issue.

I then tried quitting BetterDisplay, the issue still persisted. At this point I thought the issue was with the monitor itself.

I then proceeded to try the following:

Nothing worked. I thought maybe the monitor got defected or something, even though nothing changed since yesterday and there's no physical damage.

I then tried to change to a different picture mode. These are the modes available: IMG_2441

Now, what I found out is that only the 'Reader' and 'HDR Effect' modes work as expected, and all other modes display an almost all-black picture: IMG_2439

As I said, I already tried resetting the monitor's settings to factory defaults. I also tried resetting the DDC settings for the monitor in BetterDisplay, still no help...

I now know that the issue isn't in the monitor, or at least not in the actual screen of the monitor, because its able to display the picture normally in certain picture modes. It seems though that some of the picture modes got fucked up, and like its coded in the picture modes themselves?

Another detail that may help investigate the issue - when I restart my PC and BetterDisplay starts, the picture becomes black-ish again even in the valid 'HDR Effect' mode, until I switch to a different mode and then switch back to 'HDR Effect'. I tried disabling BetterDisplay from starting on logon, and now the monitor works normally with the 'HDR Effect' mode on bootup, without the need to switch and then re-switch the mode.

I also changed this setting from 1st option to 2nd yesterday, because volume and brightness DDC control didn't work for me (eventually solved it through a different setting): CleanShot 2024-08-21 at 12 19 56@2x Think It may be related?

It seems that BetterDisplay has somehow modified the DDC settings (probably?) of my monitor in a bad way, and now I can't find a way to revert it? It may not be the case but that's what I'm thinking based on the troubleshooting I've done so far.

Other things I tried that come to my mind:

Would appreciate any help. Thanks in advance.

sagieinav commented 2 months ago

I've finally found the solution to this! Gonna post it here so everyone that may encounter this issue in the future will be able to solve it.

Also the dev can consider adding this to a FAQ or knows issues section if there's one.

Turns out that the 'DDC values on startup' setting that I mentioned caused the issue after all, as I suspected.

The solution is to revert the setting to 'Assume last used or default values are valid' AND THEN reset the monitor to factory settings from the monitor's own settings.

Resetting the monitor on its own doesn't solve the problem, as I mentioned I've already tried it in the very beginning. You have to change this setting in BetterDisplay and then reset the monitor to factory settings.

@waydabber, I personally think It'd be great to add a disclaimer next to this setting in the app, as it writes settings into the actual display. Maybe even check why did this setting cause this issue? I understand what this setting does is actually write the DDC settings to the display, but it doesn't seem like what was written is the settings I was using, so I'm not sure this is a valid behavior, but I may be wrong.

waydabber commented 2 months ago

Nice!

I am not sure what's wrong. This setting (write last values) is not enabled by default, it might be useful for people with different computers connected to the same display, wanting the app to restore previous values on startup. But since the app restores previous values, if those were valid, it should not cause any problem with the screen. I can envision a scenario when the display reported some incorrect values on DDC configuration to DDC color controls which the app does read and store (if the values seem correct and the read was successful) and then assume both as default values for the display and currently set values. Now if these values were wrongly reported to begin with, then the app will restore these wrong values on startup when this setting is enabled. You can check under the display's DDC Features... sheet the min/max and default values for various DDC controls (including color controls). You can also check and modify the current values under the DDC Control menu of the app under the display.

waydabber commented 2 months ago

But: I'll make a change, in the next version the app won't save read values during auto-configuration for controls that are yet marked as untouched (not changed by the user using the app) - this way the app will treat these controls undisturbed and won't restore a possibly corrupt values on displays with DDC read issues. This will probably help avoiding such issues.