Turns out that the dscTargetBPP preference can only be changed if the Apple Internal SIP bit is set, and that bit cannot be set by csrutil. I don't know how to change that bit.dscTargetBPP is definitely the correct name and case. It exists in CoreDisplay for Catalina, Big Sur, and Monterey. I guess I need to do more digging to see how it's used. I wish this part was still open source. InstallTiming functions (including scaled resolutions) were last seen in HighSierra 10.13.6 open source code (IODisplayLib.c) which predates DSC support. The timing and scaled modes functions were moved to CoreDisplay starting with Sierra 10.12.
My WhateverGreen fork (Intel Macs only) has a new patch to change dscTargetBPP (add a boot-arg
dscbpp=8
- for Catalina and later). If you're using Open Core or OCLP, then you can replace Lilu and WhateverGreen with my versions. If you use any other Lilu based kexts then they need to be recompiled using the headers from my Lilu.kext. That patch, in conjunction with the CheckTimingWithRange patch (add a boot-arg -cdfon
- For Tiger and later), can enable 4K240 and beyond on Intel Macs with a GPU that supports DSC (tested with 6800XT and Sequoia). DP to HDMI adapters are not tested.I think Apple Silicon Macs automatically support DSC with values ≤ 12 (4K240 tested on M3 with Sequoia).