sRGB emulation for Nvidia gpus with wide-gamut displays (novideo_srgb)

Scott_Arm

Legend
Windows is pure shit at colour management. If you have a wide gamut display most of the time everything on your pc is going to look wrong, because Windows assumes the srgb colour space, but doesn't colour manageme everything correctly. With AMD drivers there is a way to limit the colour gamut of your monitor to the srgb space. Now someone has made a tool to do the same for Nvidia drivers using an undocumented nvidia api. You just turn it on and it works. Nvidia really needs to get their shit together and make it part of the driver.

Anyway, if you don't actually use the wide gamut of your display, you can use these options to fix saturation. It works for all apps, even exclusive fullscreen.

Good article about the issue and the solutions:
https://pcmonitors.info/articles/taming-the-wide-gamut-using-srgb-emulation/

The tool for Nvidia
https://github.com/ledoge/novideo_srgb
 
i think the reason is that for most people "more vibrant and saturated" = "better"

its like the loudness wars in music: compress the dynamic range for "better sound"
 
Last edited:
i think the reason is that for most people "more vibrant and saturated" = "better"

its like the loudness wars in music: compress the dynamic range for "better sound"

At this point I don’t understand how windows is so far behind Mac OS for colour management. On Mac it’s fully managed and they even have display p3 as a colour format for wide gamut.
 
At this point I don’t understand how windows is so far behind Mac OS for colour management. On Mac it’s fully managed and they even have display p3 as a colour format for wide gamut.
more professionals who demand these kinds of features? more people inside apple than ms that care about this?
 
So that's why colors looks weird with wide gamut enabled. Why can't windows simply sync with the wide gamut enabled, I wonder.
 
So that's why colors looks weird with wide gamut enabled. Why can't windows simply sync with the wide gamut enabled, I wonder.

Normally you'd do that with an icc profile. The icc basically stores the information about the colour space of the display, and then a colour managed application can use the icc to correct colours for your particular display. Most monitors will have a driver that includes an icc which may or may not be close to the true colour space of your monitor. Or you can buy a profiling tool like a colorimeter and profile your own display to generate your own unique icc. The problem is in windows exclusive fullscreen apps do not your icc. Most windowed applications don't either. Some pro apps like adobe stuff would be correctly colour managed. Web browsers are, but I'm a little confused about the details in terms of what is default on/off and which browsers have issues.

In comparison in Mac OS everything is colour managed always. If you make an icc, it works for every single application as far as I'm aware. It's also been that way for a very long time.

Windows desktop expects everything to be srgb colour space, and if your monitor is not srgb, basically everything will be displayed wrong. Displaycal is a nice tool to help, if you get a colorimeter, but it doesn't help with games etc. I was down the reshade rabbit hole, but it's a huge pain in the ass, and doesn't work with microsoft store apps/games, and it also can be detected as cheat software. So basically I've been stuck with over saturated colours in all of my games. This little free tool finally fixed it.
 
more professionals who demand these kinds of features? more people inside apple than ms that care about this?

It has just always been in the DNA of Apple. Graphic design and preparing printed material for offset printing was revolutionised overnight by Apple in the 1980s before Windows existed with a GUI. Preparing news papers were a manual work process fully controlled by typography unions. They decided when they could prepare your print material and "they didn't like working" when you needed work done. They sucked.

500px-DNEX-Tryckeriet%2C_museum%2C_2017d.jpg

500px-Metal_movable_type.jpg


Suddenly it was possible to do typesetting on a computer. The typography unions were basically made obsolete in less than a year. Now advertising agencies and other graphic design outlets could prepare printed material themselves.

I know this is an old video but it really underlines the changes happening back then.


I still have mine in the fancy carrying case.
 
Last edited:
It has just always been in the DNA of Apple... I know this is an old video but it really underlines the changes happening back then.
I still have mine in the fancy carrying case.

The good old times of Calamus and an Atari ST.
 
@Pressure I get that apple has more of a history, and a lot of its popularity was built through creative industries and publishing. Windows has had a long time to catch up, and seems to have made very little effort. It's kind of crazy to me that I can go out and buy a $1000 monitor with a wide gamut and I'll have to worry about whether windows will actually display half the stuff I'm looking at correctly.
 
MS would need to stop replacing the stuff that was OK/good with shit that everyone immediately turns off/uninstalls/never uses.
 
This tool has now been updated to read an icc profile and create a LUT to calibrate to accurate srgb instead of just clamping gamut. AMAZING. Trying to figure out the workflow though. I'm assuming you create an icc, use the advanced settings in the tool to load the icc info and create the LUT and then disable the icc in windows?

https://github.com/ledoge/novideo_srgb/releases/tag/v1.3

You can even choose srgb, bt1886, absolute or relative gammas. This is amazing. The tool I've been waiting for.
 
What I ended up doing to get really nice results with my wide-gamut monitor. Monitor has never looked better. This probably wouldn't be the best for a professional that's working with colour critical applications, but I verified the results with HCFR and they're very good. I checked primaries, secondaries including saturations, greyscale, gamma, near black, near white and the color checker for skin tones etc. Worst delta E was 1.9, and many of them were under 1.0 with quite a few under 0.5.

1) set monitor to defaults
2) used displaycal to adjust brightness on monitor to 120 nits, and RGB on monitor to D65 white point
3) used displaycal to calibrate and profile (whitepoint, white level, black level, tone curve all set to "As measured"), profile settings at defaults except patches increased to 1100
4) use novideo_srgb to clamp gamut and use the advanced option to select the icc profile I created in displaycal with the calibrate gamma option checked and set to sRGB
5) use displaycal to calibrate and profile again with all of the same settings except I only did 175 patches
6) install and use the second displaycal profile

So now I have a perceptual match to sRGB for all of my games, including exclusive fullscreen, and a working icc for any colour managed applications that's expecting one.

It kind of pisses me off that I have to do something this stupid to get display accuracy in Windows.
 
I got a response from the creator which leads me to think I pretty much got it right.

https://hub.displaycal.net/forums/t...uts-to-the-windows-desktop/page/6/#post-33333

Alternatively, you could use the manufacturer's icc with novideo_srgb to clamp your gamut, maybe even try using the calibrate feature, and then use the default srgb icc that windows provides as your default icc for colour managed applications. It wouldn't be perfect, but it might not be terrible. I do think the novideo_srgb expects your monitor to have D65 as a whitepoint, so you might need to change your monitors colour temperature to a 6500K setting. Not sure.
 
Some day I'm going to buy an obscenely expensive, high refresh, high dynamic range, stupidly-wide monitor and I'm going to want to remember all of this. Thus, I'm posting in here for my own posterity :D
 
Some day I'm going to buy an obscenely expensive, high refresh, high dynamic range, stupidly-wide monitor and I'm going to want to remember all of this. Thus, I'm posting in here for my own posterity :D

Honestly, I hope they start coming out with 240Hz tvs, then I can just buy a tv and calibrate it and never have to worry about messing with windows software etc. Computer monitors are pretty much 100% reliant on having the operating system colour manage correctly, unless you buy a monitor that supports hardware calibration which are rare.
 
Windows does have a colour management tool of its own. But its broken. Aplications that care are free to overwright it, I know photoshop does, and tou can have different apps in windowed mode managing colours differently simultaneously on the same screen. I don't know how that works internally, but if you take a print-screen at those points the colours in the snapshot will look different there than they do nativelly on-screen.
The problem, or one of them, is often this will bug out and some apps will end up using the profile of another and their colours will look more saturated or washed out than they are supposed to. I must see this happen at least every other week during work... It does not inspire trust...
 
@milk DisplayCal profile loader may be able to force a particular occ when an app is active. Not sure. I’ll have to look at it. I know profile loader is a lot more reliable than the windows icc loader.
 
An update:

I'm still playing around with this. They added new features and I see there are some different instructions up on the github page. Basically if you're calibrating and profiling with displaycal you should set a whitepoint target and a tone curve on the calibration screen. On the profiling screen you need to set the profile type to curves + matrix, which will limit the number of patches, and black point compensation must be turned off. I seemed to get good results again this way. In displaycal profile loader I just associated the standard srgb icc/icm with my display. So novideo_srgb does the calibration and displaycal just gives me a working icc/icm that doesn't change anything for all of the applications that are looking for colour management. I can profile the display with novideo_srgb applied to probably get something even more accurate, but honestly this is close enough.

On top of that, the new version has some new features. You can now clamp to adobergb or display-P3, but they don't have calibration options for those colour spaces (yet?).

You can actually enable dithering! One of the issues with nvidia's consumer drivers is they do not support dithering, so if you do a normal display calibration that alters the video card gamma table, you can end up with colour banding. Absolutely stupid. AMD supports dithering so calibrations work much nicer. The nice with with novideo_srgb is I can enable dithering and get a good srgb calibration and it works absolutely everywhere, instead of having to worry about applications ignoring the icc or overriding the vcgt. So it fixes some Nvidia problems and it fixes some Windows problems.

Verified my results with novideo_srgb applied using HCFR and they were very good.

upload_2022-1-17_0-36-2.png

upload_2022-1-17_0-36-26.png

From novideo_srgb
upload_2022-1-17_0-37-39.png
 
Back
Top