• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

Problem with Color Gamut on GTX670 - Need advice.

Pyrrhus

Member
Yesterday, I upgraded from a Radeon 5850 to a GeForce GTX670 and while I'm pleased with the increase in performance, I'm running into a serious problem with how the card is outputting color. In a nutshell, I don't think it's outputting the full color gamut and I'm hoping someone can point out a setting I'm overlooking or some other known issue.

When I start my computer, my BIOS and Windows startup screens both output with good color and blacks that are actually black at 50 Brightness, which is the same brightness level that outputs proper color and contrast for my consoles, other computers I plug in, and the previous video card. However, when the machine actually boots to Windows itself, blacks become gray, colors are blown out, and it generally looks way too bright. When I first plugged in the card, before it had installed its software, Windows colors looked fine. But now that the drivers are installed, it's blown out. So this obviously is pointing to a software problem.

Dropping my screen's Brightness setting from 50 to 25 lets the blacks and colors approach what they were with the other card at 50 Brightness. However, color banding is extremely noticeable.

I use a 42" Sony XBR6 HDTV as my monitor and I know the television is capable of full color gamut output because I used the full gamut setting on the Radeon and continue to use it on my PS3 and color reproduction looks proper and notably more rich that when I set those devices to limited.

So it comes down to this new card. Is it using some kind of shitty color profile it has associated with my monitor? If so, is there a way to override that? Does anybody know of a setting in the nVidia program I can change to make this card behave? Or has anybody encountered this blown out video problem and found a solution?
 
This is probably a minor tweak that won't do much by the sounds of your issues, but have you tried enabling full dynamic range in the Nvidia control panel ( 0-255 ) instead of the default "limited" ( 16-235 )
 
This is probably a minor tweak that won't do much by the sounds of your issues, but have you tried enabling full dynamic range in the Nvidia control panel ( 0-255 ) instead of the default "limited" ( 16-235 )

Under Video Settings? Yeah, I did. Though I think that only affects how it processes videos. I've got the color depth under Desktop Settings set to 32-bit.
 
This is probably a minor tweak that won't do much by the sounds of your issues, but have you tried enabling full dynamic range in the Nvidia control panel ( 0-255 ) instead of the default "limited" ( 16-235 )

I would imagine this only affects video playback.
 
Under Video Settings? Yeah, I did. Though I think that only affects how it processes videos. I've got the color depth under Desktop Settings set to 32-bit.

Actually, it does enable a wider colour range which also effects gaming. However it was a long shot.
 
Are you sure that your tv is full range? Even if you are right and it is, you can go into your tv settings to change the hdmi black level to low, or however they worded the setting.

I would not be suprised if you are simply used to crushed blacks, however.
 
I'm using the same HDMI port I used with the other card. And the blacks aren't crushed. Or they weren't when using the other card.
 
I didn't spend $400 to play in limited color on a monitor I know can do full gamut. And beyond that, switching the Video Setting to limited doesn't appear to make any difference to how it outputs the color. I'm thinking I need to reinstall the drivers or something.
 
I'm pretty sure this is the same exact problem I had with my TV when I switched from AMD to Nvidia.

Make sure your display is running at it's native resolution and then give this a try:

1. Open up Nvidia Control Panel
2. Go to 'Change Resolution' under the display section.
3. Hit the Customise button.
4. Click 'Create Custom Resolution...'.
5. Leave all values as the defaults except for the timing section; change the drop-down from 'automatic' to 'manual'.
6. Change the refresh rate at the bottom from 60.000Hz to 60.001Hz.
7. Click 'Test'.

If this fixes things then just hit OK and your display should show the full range of colours.
 
I'm pretty sure this is the same exact problem I had with my TV when I switched from AMD to Nvidia.

Make sure your display is running at it's native resolution and then give this a try:

1. Open up Nvidia Control Panel
2. Go to 'Change Resolution' under the display section.
3. Hit the Customise button.
4. Click 'Create Custom Resolution...'.
5. Leave all values as the defaults except for the timing section; change the drop-down from 'automatic' to 'manual'.
6. Change the refresh rate at the bottom from 60.000Hz to 60.001Hz.
7. Click 'Test'.

If this fixes things then just hit OK and your display should show the full range of colours.

Man, that would be great if that were the solution. Do you know if it was caused by some conflict from the old AMD driver or something?
 
Man, that would be great if that were the solution. Do you know if it was caused by some conflict from the old AMD driver or something?

So that didn't work? Then sorry man, I'm out of ideas.

As for my machine, I built a new one from scratch so there were no old drivers conflicting.
 
This may sound excessive but have you tried running a registry sweep, driversweeper of all drivers including the nvidia ones, and a directx update? I'm only throwing these things out since it may or may not be HW related.
 
Not sure if it is the same problem OP but I have a problem with my 560ti where the gamma settings seem to get overridden when I launch certain games. Even on bootup this morning Windows didn't seem to want to load in my new colour settings I setup last night.

I deleted all of my display colour profiles in control panel and stick to only Nvidia's CP and it helps a little. Whenever gamma settings do change going into the Nvidia CP and clicking "other app controls colour" and then back to "Nvidia controls colour" fixes it.

This seems like quite a widespread issue regarding gamma settings not sticking but like I said I'm not sure if this is anything to do with your problem.
 
If Cannon's fix doesn't work OP, another possible solution is to go into the Nvidia control panel > Adjust Desktop Color Settings > Content type reported to the display > Full Screen Videos OR Desktop Programs (whichever one makes your levels correct). You've most likely got an RGB range mismatch between your TV's settings and the GPU's settings. Nvidia's handling of HDMI and video ranges has always been screwy--some settings effect it, others do not, and they change things up pretty much every other driver release. If neither solution works, changing Digital Color Format (in the same menu) to YCbCr may also do it.
 
Just for reference, here's how my TV looked before I applied that fix I listed above:

iYGIMvTul181q.jpg


And after the fix:

iQlUOscENEuRQ.jpg
 
Hot damn, it works! Thanks to everybody who responded in this thread and a special, particular thanks to Cannon Goose for all the help. So it's working as intended now. Any idea why that made it function properly?

Edit: Is there a way to make this work in non-native video modes too? I tried a game I set to 1360x768 and it was blown out too.
 
Is there a way to do this with the laptop Nvidia drivers? I recently switched to a gaming laptop for space reasons and I can't find gamma options anymore.

Not sure. What drivers are you running?

Just done a quick google search and the only answer I found was to uninstall the nvidia driver. Maybe someone else has a better answer.
 
For the 768p signal, I set my display format to YCbCr and that also made the brightness correct. So a special thanks to you as well, Reallink.
 
Glad to hear it worked. You can do the same thing (change the refresh rate to 60.001Hz) for 768p and that will make it display the correct colour range as well.
 
Had exactly this problem with my partner's monitor and GTX460. Didn't fancy mucking around with custom resolutions so we just switched to a DVI cable, which works fine.
 
The refresh rate workaround is normally fine, but fails in situations were you cannot select a custom refresh rate (eg. some games) or want to drive a signal at exactly 59.94 Hz (eg. for a particular output device or judder-free video).

I made a tool that fixes the issue once and for all.
Just download it, click a button and it's done.

Thanks for this. Hopefully all of this information from various people will prove useful and easy to find for others who may have this problem in the future.

Also, someone who doesn't post on the forum had this information to pass along. (I suspect this is doing manually what your program automates, right Durante?)

Unlike, ATI where you can go into the driver settings and select Full RGB or Limited RGB output, Nvidia, for a long time, has taken the absurd position of assuming all HDMI devices connected through HDMI (including PC monitors) are Limited color space. All standard "HDTV" resolutions such as 1920x1080 are compressed to Limited color space by the card.

Creating a custom resolution that the drivers don't already know about is one way to work around this issue as has already been posted on the thread, however it is not ideal as you have to use nonstandard refresh rates. But in this case, for that custom resolution only, the driver will allow Full color space.

Despite years of complaints, Nvidia has not included the option to simply select between Full and Limited RGB color space (on Windows anyway, their Linux driver has the option). The setting that is in the drivers only affects video playback, not desktop/games/etc. The only proper way to allow Full RGB color space over HDMI is to modify some text files before installing the driver.

Here are the steps:

1. Launch the driver exe and allow it to unpack the driver files to, then cancel.
2. Find the unpacked driver files (C:\Nvidia) and navigate to the the right version (every driver you ever installed will be stored there). Then navigate to /Display.Driver/nv_disp.inf and open it with Notepad.
3. Use the search function to find a set of entries starting with [nv_miscBase_addreg__01] there will be a lot of them maybe over 20 or 30. For each one, add this as the first line right under the header: HKR,,SetDefaultFullRGBRangeOnHDMI,%REG_DWORD%,1
That will mod the driver to use Full RGB with HDMI devices. Your TV settings need to be set to Full color space mode as well (Black Level High or whatever your brand calls it).

Example, how it might look before:

[nv_miscBase_addreg__01]
HKLM,"Software\Khronos\OpenCL\Vendors" ,nvcuda.dll,%REG_DWORD%,0x00000000
HKLM,"Software\NVIDIA Corporation\Global\Hybrid",AddDeviceSequence,% REG_DWORD%,1
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NoPages,%REG_DWORD% ,0x40120518
HKLM,"Software\Wow6432Node\Khronos\OpenCL\ Vendors",nvcuda.dll,%REG_DWORD%,0x00000000
HKR,,MonitorCapabilityList,%REG_MULTI_SZ%,"ACR,2A1,71;"
HKR,,MonitorCapabilityList,%REG_SZ_APPEND%,"ACR,0126,70; "
HKR,,UserModeDriverGUID,%REG_SZ%,"{9A516B97-E7C1-451B-9165- C5035994A3F5}"

[nv_miscBase_addreg__02]
HKLM,"Software\Khronos\OpenCL\Vendors" ,nvcuda.dll,%REG_DWORD%,0x00000000
HKLM,"Software\NVIDIA Corporation\Global\DRS",DRS_DefaultProfile,%REG_SZ% ,"3D App - Default Global Settings"
HKLM,"Software\NVIDIA Corporation\Global\Hybrid",AddDeviceSequence,% REG_DWORD%,1
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NoPages,%REG_DWORD% ,0x40120518
HKLM,"Software\Wow6432Node\Khronos\OpenCL\ Vendors",nvcuda.dll,%REG_DWORD%,0x00000000
HKR,,MonitorCapabilityList,%REG_MULTI_SZ%,"ACR,2A1,71;"
HKR,,MonitorCapabilityList,%REG_SZ_APPEND%,"ACR,0126,70; "
HKR,,UserModeDriverGUID,%REG_SZ%,"{9A516B97-E7C1-451B-9165- C5035994A3F5}"

[nv_miscBase_addreg__03]
HKLM,"Software\Khronos\OpenCL\Vendors" ,nvcuda.dll,%REG_DWORD%,0x00000000
HKLM,"Software\NVIDIA Corporation\Global\Hybrid",AddDeviceSequence,% REG_DWORD%,1
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NoPages,%REG_DWORD% ,0x40120518
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NvCplAllowStartupDelay, %REG_DWORD%,0x1F4
HKLM,"Software\Wow6432Node\Khronos\OpenCL\ Vendors",nvcuda.dll,%REG_DWORD%,0x00000000
HKR,,MonitorCapabilityList,%REG_MULTI_SZ%,"ACR,2A1,71;"
HKR,,MonitorCapabilityList,%REG_SZ_APPEND%,"ACR,0126,70; "
HKR,,UserModeDriverGUID,%REG_SZ%,"{9A516B97-E7C1-451B-9165- C5035994A3F5}"

... etc

And after:

[nv_miscBase_addreg__01]
HKR,,SetDefaultFullRGBRangeOnHDMI,%REG_DWORD%,1
HKLM,"Software\Khronos\OpenCL\Vendors" ,nvcuda.dll,%REG_DWORD%,0x00000000
HKLM,"Software\NVIDIA Corporation\Global\Hybrid",AddDeviceSequence,% REG_DWORD%,1
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NoPages,%REG_DWORD% ,0x40120518
HKLM,"Software\Wow6432Node\Khronos\OpenCL\ Vendors",nvcuda.dll,%REG_DWORD%,0x00000000
HKR,,MonitorCapabilityList,%REG_MULTI_SZ%,"ACR,2A1,71;"
HKR,,MonitorCapabilityList,%REG_SZ_APPEND%,"ACR,0126,70; "
HKR,,UserModeDriverGUID,%REG_SZ%,"{9A516B97-E7C1-451B-9165- C5035994A3F5}"

[nv_miscBase_addreg__02]
HKR,,SetDefaultFullRGBRangeOnHDMI,%REG_DWORD%,1
HKLM,"Software\Khronos\OpenCL\Vendors" ,nvcuda.dll,%REG_DWORD%,0x00000000
HKLM,"Software\NVIDIA Corporation\Global\DRS",DRS_DefaultProfile,%REG_SZ% ,"3D App - Default Global Settings"
HKLM,"Software\NVIDIA Corporation\Global\Hybrid",AddDeviceSequence,% REG_DWORD%,1
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NoPages,%REG_DWORD% ,0x40120518
HKLM,"Software\Wow6432Node\Khronos\OpenCL\ Vendors",nvcuda.dll,%REG_DWORD%,0x00000000
HKR,,MonitorCapabilityList,%REG_MULTI_SZ%,"ACR,2A1,71;"
HKR,,MonitorCapabilityList,%REG_SZ_APPEND%,"ACR,0126,70; "
HKR,,UserModeDriverGUID,%REG_SZ%,"{9A516B97-E7C1-451B-9165- C5035994A3F5}"

[nv_miscBase_addreg__03]
HKR,,SetDefaultFullRGBRangeOnHDMI,%REG_DWORD%,1
HKLM,"Software\Khronos\OpenCL\Vendors" ,nvcuda.dll,%REG_DWORD%,0x00000000
HKLM,"Software\NVIDIA Corporation\Global\Hybrid",AddDeviceSequence,% REG_DWORD%,1
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NoPages,%REG_DWORD% ,0x40120518
HKLM,"Software\NVIDIA Corporation\Global\NVTweak",NvCplAllowStartupDelay, %REG_DWORD%,0x1F4
HKLM,"Software\Wow6432Node\Khronos\OpenCL\ Vendors",nvcuda.dll,%REG_DWORD%,0x00000000
HKR,,MonitorCapabilityList,%REG_MULTI_SZ%,"ACR,2A1,71;"
HKR,,MonitorCapabilityList,%REG_SZ_APPEND%,"ACR,0126,70; "
HKR,,UserModeDriverGUID,%REG_SZ%,"{9A516B97-E7C1-451B-9165- C5035994A3F5}"

Again you need to do it for every numbered entry. Then save the file and install the driver by going up to the main folder and running setup.exe. During installation a warning message may show saying the driver is unsigned, because it no longer matches the checksum, just ignore it and continue installing.

Once installation is complete, all resolutions will be using Full RGB color space.

This procedure needs to be followed with every driver install, reinstall, or upgrade.

So once again, a big thank you to everyone who shared their information and expertise. You've really improved my week.
 
The refresh rate workaround is normally fine, but fails in situations were you cannot select a custom refresh rate (eg. some games) or want to drive a signal at exactly 59.94 Hz (eg. for a particular output device or judder-free video).

I made a tool that fixes the issue once and for all.
Just download it, click a button and it's done.

That tool would be perfect. I hate editing my registry after every new driver install.

But it says the file was deleted, can you rehost?
 
Sweet, got it.

To blow off some steam, why the hell doesn't Nvidia fix their problem? The only response I got on the forums from an official was that it was done that way because it is the best way. Unacceptable response. :|

/rant
 
Top Bottom