Nvidia RGB Full/limited range toggler

I recently had a problem where I simply couldn’t get my NV GPU to supply full range RGB (0-255) over HDMI when the resolution was either 720p or 1080p at 59.94 Hz.
Apparently this has been a known problem for years, and the only reliable solution was to edit your driver .ini files before installation.

After some digging through obscure NV support posts I managed to find the registry keys that control this behaviour, and I implemented a small tool to switch all graphics modes between full range and limited range. It’s not as convenient as a driver level toggle, but it fixed my problem and since NV hasn’t acted on this for years I don’t expect them to do so any time soon.

Here’s the binary: NV_RGBFullRangeToggle

And here’s the source for anyone interested: NV_RGBFullRangeToggle_Source

It’s a very simple program, basically it does this:

 

34 thoughts on “Nvidia RGB Full/limited range toggler

  1. I don’t how but this utility fixed my Nvidia Control Panel problem with saving graphics settings. Before every time I booted into my system the brightness would be bright forcing me to reset the control panel manually on boot.  Thanks for the fix, out of a hundred different posts on geforce forums regarding a fix this one actually worked.

    This should be sent to Nvidia for actually implementing this fix or at the very least have a link on Guru3d!

  2. Wow, yeah that was it. In my weeks of searching I can’t believe that never popped up once.

    Sorry about that hah, and thank you as well.

  3. Blu-ray players and consoles are usually hooked up to a HDTV, which in many cases is only capable of limited RGB. As of late, this has begun to change. Due to this, Blu-ray players and consoles output limited RGB by default. You have to manually set each of these devices to output full RGB via their specific menus.

  4. Yeah, the GPU is set up to an Fn key, the software is the Nvidia drivers. I’ve used both a player and a console and they both have the same issue.

  5. What is the external source (Blu-ray player/Console)? How are you playing the incoming video signal (specific software/is the GPU just set to display the HDMI input signal by pressing a Fn + <whatever key> key combination?

  6. Nope, Nvidia handles it in the same way it handles the output except unlike with the output this registry didn’t fix the issue. The drivers are NVIDIA drivers- those are the ones needed. And like I said those who run AMD instead of Nvidia don’t have this issue so it’s clearly a problem with Nvidia.
    All that’s happening is Nvidia being Nvidia and limiting the RGB range by default, what I need help with is figuring out how to stop it.

  7. Huh, apparently there’s a very niche market of laptops with HDMI inputs as well as outputs. Sorry if I misunderstood. Most people who use HDMI-in either do it externally (HD-PVR/Elgato) or internally on a desktop (Blackmagic/Avermedia). I have absolutely no experience with this. I’m guessing your laptop came with some proprietary drivers to enable this feature. What software are you using to play the incoming video?

  8. I honestly have never heard of laptops with HDMI inputs, let alone old laptops w/ it. If you’re using an HDMI port from the side of your laptop which contains a Nvidia GPU and sending video to an external display/monitor, that is HDMI output.

    If that’s the case, then this tool can fix the problem with a click of a button and a system reboot. Make sure your display is set to full RGB to match.

  9. That was weird, I’m having issues typing into this box and it apparently ate my post but here’s what it was.

    Ah, no. It’s an old laptop that has an HDMI input built into the side that goes through the GPU and outputs into the monitor really not much different from the HDMI output.

    I’m 100% positive this is the issue as the only ones who have this problem are strictly limited to Nvidia users while those who run AMD GPUs don’t get the grayed out blah so there’s no doubt.

    How can I find the registry entries? Like where are they usually located/what should I look for and where? I’m assuming it won’t be anywhere different from the HDMI Output Registry keys but I don’t know where those are either.

  10. HDMI input, so you have a capture card installed?

    You should always leave the video you are capturing untouched whether it is limited RGB (16-235) or full RGB (0-255). If the video you are capturing is natively limited RGB, and you are viewing it on a full RGB display (all computer monitors and some modern televisions with their full RGB setting enabled), you should have your video player do the limited to full RGB conversion. There is no need to mess with registry keys.

  11. I have a question, I have a computer that has an HDMI INPUT rather than output that washes out the color can you help me figure out how to fix that? I’m assuming it’s the same as the output but as a separate key so this doesn’t encompass it.

    I don’t know where to start.

  12. Hey Peter,

    I want to thank you for this tool. I’ve learned quite a bit about the RegistryKey class from your source code, as well as seen the similarities between C++ and C#. With my rudimentary knowledge of C++, it was interesting to see how C# separated itself as a more modern language. I hear Ruby is similar in its ease of use.

    I’ve noticed your utility looks under <Registry.LocalMachine.OpenSubKey(“SYSTEM”)> while you can actually be more specific and shave some time off the recursion with the parameter <Registry.LocalMachine.OpenSubKey(@”SYSTEM\CurrentControlSet\Control\Video”)>. Additionally, the registry value only needs to be entered in the first instance of “MonitorCapabilityList” it finds, as the new entry replicates to all other necessary key paths automatically. Done this way, it’s safe to just stop the recursion and return after the first entry of “SetDefaultFullRGBRangeOnHDMI”.

    It really astounds me how Nvidia is obnoxious enough to not even acknowledge this long-standing issue; I mean this has been a driver problem for years. Intel iGPUs also force limited RGB output, not allowing the end-user to toggle between limited and full. They however have acknowledged the problem, but have been constantly giving users the runaround regarding their implementation of a solution. For Intel, this can be fixed with the registry entry “EnableRGBFullRange”. It’s sad that out of Intel, AMD, and Nvidia, only AMD has been competent enough to implement a toggle in their control panel for HDMI RGB range.

    Anyway, sorry for the spiel. Thanks again for being the first one to develop and distribute OPENLY a simple tool to automate this registry fix. Also, thanks for the highly renowned DSfix, as well as your recent tackle against the dreadful resolution lock of Deadly Premonition.

    Wow, it’s tough to get a post on here.

  13. How can I remove this from my system? I installed this for my new S27C750P monitor but somehow can’t change certain settings on my monitor while it’s connected through hdmi now.

    • You don’t need to remove anything, you should be able to just set everything back to limited range again.

  14. I recently ran the toggle per recommended by TFT Central reviews for a new Dell monitor I purchased. The toggler did help a lot for the screen quality going through HDMI. The question is, if I go back at some point and need to use DVI all the way, do I need to run this toggler again to switch back to a Limited range setting? And does this toggler show by what button is highlighted what the current settings are? In other words when I open the toggle tool the Full Range button is highlighted. I’m assuming the only time I need to toggle back would be if I ever use HDMI ran to a TV or some such thing. Thanks for any advice that anyone is able to give here.

    • It doesn’t show the current setting. And yeah, the only reason to set it back to limited range is if you connect to a TV which only supports limited range RGB.

  15. I didn’t understand what you described above but I think it worked for me the over saturated colour problem is fixed now with driver version 327.23 .Thank you very much :)

  16. Bookmarked!

    This is really great tool. I have an IPS monitor and I feel the color are much better now, it does affect colors in every thing (desktop, games, etc…) or only videos ?

    MANY THANKS

     

  17. I have a Samsung TV and am using the HDMI port that has (DVI) written next to it. I have labeled his input to “PC” inside the TV menu. This tool has verified for me that my NVidia card is already outputting full RGB. Very handy tool!

  18. Just want to thank you for this tool. It makes things much easier when changing drivers, and Nvidia doesn’t seem to be interested in fixing it. Problem is still present in beta driver 313.96.

  19. Tested with 310.xx ForceWare series?
    I think it’s a good idea to check sometimes if no regkey changed…..

  20. Pingback: NVidia’s incompetence on HDMI « BenV's notes

  21. Got it to work from running from desktop. However it crashes after clicking “0-255″ with a runtime error….. Is there a log I can make to send to you?

  22. “unable to find version of runtime to run this application”.

    WHich .net must be installed? Bizzare as I have all Win7 x64 updates etc…

  23. Thank you SOOOOOO much for this! I can’t believe I’ve had to edit the driver files for 4-5 years for this work. I was always pissed that NVIDIA has refused to add this as on option in the drivers. The colour range problem happened when I used HDMI for ANY resolution. Luckily I have never needed to use HDMI audio as I have always just had my PC decode HD Audio for Blu-rays and I used my optical out for DD and DTS.

    However, now I know I have the option of playing movies with TrueHD or DTS MasterHD Audio AND having full range colour over HDMI. This have been long needed by thousands of people. Thank you sooo much!!!

  24. I am teaching myself Java and currently use Notepad as a text editor – but your code has colors!, and a line count! What text editor is this? Thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">