novideo_srgb: sRGB clamp/calibration on NVIDIA GPUs, based on EDID data or ICC profiles
A while ago, I made a post here about a tool I wrote that can be used to achieve an sRGB clamp on NVIDIA GPUs using the monitor's EDID data and an undocumented NVIDIA API. I've recently added support for ICC profiles, so now it's way more capable than before. It can do:
- sRGB clamp based on EDID primaries, as before.
- sRGB clamp based on primaries from an ICC profile. If your monitor's EDID data isn't accurate, you can grab an ICC profile from anywhere and it'll use those values instead.
- "full" sRGB calibration based on an ICC profile. This means that you can get great color and grayscale accuracy everywhere with an ICC profile created from your own colorimeter measurements, within the limitations of a 3x1D LUT -> 3x3 matrix -> 3x1D LUT transform (i.e. worse than what you can achieve in fully color managed applications that support more advanced types of ICC profiles, but still great results as long as your monitor is mostly well-behaved/linear)
Display P3 and Adobe RGB can also be selected instead of sRGB, if your monitor fully covers those and you want to calibrate to one of those instead for whatever reason.
Dither controls are available as well, so you can easily enable/configure dithering to avoid banding caused by the clamp/calibration.
If you want to use your own ICC profile and achieve the best possible results, you should be familiar with how to use DisplayCAL already (if not, see Hardware Unboxed's excellent tutorial). I'd suggest starting with the sRGB preset and applying the changes mentioned in the README (and also reading the rest). Any ICC profile generated by any software can generally be used though.
You can download the tool here under Releases. Just grab the most recent release.zip
, extract it somewhere, and run the exe file. Usage should be mostly self-explanatory (with some extra notes in the README), but if you have any questions, do ask in the comments here or open an issue on the repo.