univ-of-utah-marriott-library-apple / display_manager

An open-source Python library which can modify your Mac's display settings manually or automatically.
MIT License
237 stars 18 forks source link

Problem with color depth on UHD 630 #8

Open mabam opened 5 years ago

mabam commented 5 years ago

When I use Display Manager to set a resolution and refresh rate, it will change the colour depth to 24 bits. When I use System Preferences to set the resolution, 30 bit is used as the UHD 630 in my machine, where the screen is connected to, can’t provide 32-bit.

In your answer to issue 6 you explain that color depth has been deprecated as almost all modern monitors use 32-bit colour depths. As far as my monitors are concerned that is true. But the latest low-end Mac models come with a UHD 630 only providing 24-, 30- (not for HDMI), and 36-bit colour depth (see here).

Therefore, is it possible to re-implement setting of the colour depth? Or at least have Display Manager set the highest possible depth if the GPU is not capable of 32-bit?

mabam commented 5 years ago

I’ve just installed v. 0.10.0 of Display Manager as there it was still possible to define the colour depth manually. When defining display_manager.py set --display [display] -w 1280 -h 1024-d 32-r 60 that resulted in an actual setting of 24-bit, while defining display_manager.py set --display [display] -w 1280 -h 1024-d 30-r 60 resulted in an actual setting of the specified 30-bit.

In the first example, while my iGPU is not capable of 32-bit, I don’t know why a lower colour depth is actually set than the iGPU can provide for this screen. But as an idea for a future version of Display Manager, instead of adding back a color depth option to the syntax (as suggested in my initial comment), you might have your script check the possible colour depths allowed by the GPU. And if 32-bit isn’t among them, have Display Manager set the next lower one.

I hope this is of any help to you.

EDIT for clarification: After running the command in the first example above, Terminal confirms that 32-bit is set. However, under “Graphics/Displays” in the System Report, 24-bit is reported.

uurazzle commented 5 years ago

@mabam Thanks for the feedback. When we get time we will try to investigate the issue and consider updating the code. If you know python and are willing to help with our project, pull requests are welcome.

mabam commented 5 years ago

I would help if I was able to. But I’m rather a hacker than a coder, I’m afraid. Python is a foreign language to me.

But thank you for this useful tool! (Though in my use case I don’t need most of its functions.)

uurazzle commented 5 years ago

@mabam: Ok, np. We are busy with other projects, but will get to it when we can. So, are you trying to use Display Manager on non-apple hardware? We didn't test for that ;-)

mabam commented 5 years ago

So I at least help you testing ;-)