This may be way off, but I just noticed something kind of interesting related to the transparency glitches.
When you login to an account in light mode, the menu bar appears as follows:
- No menu bar, just the SystemUIServer (clock, etc) on the right side, directly on the desktop
- Menu bar appears in dark mode, with proper transparency
- Menu bar appears in light mode, with grey appearance
Now, this might be a kind of radical conclusion to draw from that. But imagine for a second, the dark mode effect appears (mostly black, with slight transparency). Then, the light mode draws correctly, but over that. So it's a translucent white menu bar, on top of a translucent black menu bar, on top of the desktop. Would that not produce the grey color we see?
This seems crazy. But now, look at the brightness HUD overlay. In dark mode, it's quite transparent -- you can clearly see the colors of the desktop underneath. In light mode, it's supposed to be the same (only white, of course). But instead, it's a grey color. But you can still see the colors underneath if you have a very colorful wallpaper (ex. "Chroma 2"). Just extremely faintly. Would that not be exactly what you'd expect of wallpaper + dark overlay + light overlay? Less transparency, and grey.
I don't have any hard facts to back this up. But it's just an idea that fits the observations strangely well.
I guess what would follow from this, is the glitch may not be caused by NSVisualEffectView at all. It may be some result of drawing both the dark and light effects on top of each other?
Again, all guessing. But it might be worth investigating (or proving it wrong).
A good way to test this would be to completely disable the dark mode code and then try light mode. Not sure how to do this, however.
Edit: There is a serious hole in this theory. The light mode brightness HUD can be darker than the dark mode one. Nevermind. I'm wrong!
When you login to an account in light mode, the menu bar appears as follows:
- No menu bar, just the SystemUIServer (clock, etc) on the right side, directly on the desktop
- Menu bar appears in dark mode, with proper transparency
- Menu bar appears in light mode, with grey appearance
Now, this might be a kind of radical conclusion to draw from that. But imagine for a second, the dark mode effect appears (mostly black, with slight transparency). Then, the light mode draws correctly, but over that. So it's a translucent white menu bar, on top of a translucent black menu bar, on top of the desktop. Would that not produce the grey color we see?
This seems crazy. But now, look at the brightness HUD overlay. In dark mode, it's quite transparent -- you can clearly see the colors of the desktop underneath. In light mode, it's supposed to be the same (only white, of course). But instead, it's a grey color. But you can still see the colors underneath if you have a very colorful wallpaper (ex. "Chroma 2"). Just extremely faintly. Would that not be exactly what you'd expect of wallpaper + dark overlay + light overlay? Less transparency, and grey.
I don't have any hard facts to back this up. But it's just an idea that fits the observations strangely well.
I guess what would follow from this, is the glitch may not be caused by NSVisualEffectView at all. It may be some result of drawing both the dark and light effects on top of each other?
Again, all guessing. But it might be worth investigating (or proving it wrong).
A good way to test this would be to completely disable the dark mode code and then try light mode. Not sure how to do this, however.
Edit: There is a serious hole in this theory. The light mode brightness HUD can be darker than the dark mode one. Nevermind. I'm wrong!
Last edited: