CGSetDisplayTransferByTable no longer working on macOS Tahoe

For an app of mine I use CGSetDisplayTransferByTable to adjust the gamma table of the device. Since macOS Tahoe, these modifications are silently ignored. The display's actual gamma curve remains unchanged despite the API reporting successful completion.

I've filed a FB for it a few weeks ago, and would love to figure out what could be causing this. FB18559786

Answered by DTS Engineer in 851354022

Thank you for filing a bug reports. Looking at your bug remains open and and under investigation. Please continue testing your software in new system software updates and beta releases as they become available. And please update the status of your bug whenever you do a new test. Please see https://developer.apple.com/download/ for the most recent beta releases.

+1 on this. Also filed a report a while back - FB19136488

CGSetDisplayTransferByTable does not work on Apple Silicon Macs (MBP) with built-in displays when "Automatically adjust brightness" is on. The issue is present in all macOS Tahoe betas (developer beta1-beta4, including build 25A5316i).

Reproduce:

  • Enable "Automatically adjust brightness" in System Settings/Displays
  • try to apply a gamma table using CGSetDisplayTransferByTable
  • Unexpected behavior: gamma table does not get applied

Then:

  • Disable "Automatically adjust brightness" in System Settings/Displays
  • gamma table gets applied after about a second

The issue affects many popular apps like BetterDisplay, MonitorControl, f.lux, Lunar etc that rely on CGSetDisplayTransferByTable() for some features.

Thank you for filing a bug reports. Looking at your bug remains open and and under investigation. Please continue testing your software in new system software updates and beta releases as they become available. And please update the status of your bug whenever you do a new test. Please see https://developer.apple.com/download/ for the most recent beta releases.

This appears to be fixed and working fine in Tahoe dev beta 5. Closed FB19136488.

CGSetDisplayTransferByTable no longer working on macOS Tahoe
 
 
Q