tip: limited nvidia rgb range under hdmi/displayport

Discussion in 'Hardware' started by piggsy, Nov 25, 2014.

  1. piggsy

    piggsy Mu-43 Top Veteran

    Jun 2, 2014
    Brisbane, Australia

    Recently upgraded my PC with a new nv970gtx and dell U2414H and ran into this issue during setup.

    The short version:

    All Nvidia video cards automatically assume any connection to any device over HDMI (and - sometimes - displayport also) is to a television. It doesn't matter if it's not a television - if it's over HDMI, it will be treated as one. That "television" is assumed to use the 16-235 limited RGB range.

    This bug has gone on for years uncorrected and is supposedly on track to be fixed in the next driver branch ("branch" as in major revision, not version number) later this year.

    This drove me utterly mad until I worked out what was going on.

    To test whether you have this bug going on you can view the gradients and black level test at




    and see if you see a smooth trailing gradient from light to dark on the gradient, and if you can distinguish the top row of black colours on the black test.

    If you look at your Nvidia control panel and see -


    with the resolutions listed as "Ultra HD, HD, SD", and you are not using a television set to Limited RGB mode, then you almost certainly do have something to do with this bug going on. "Custom" or "PC"? Maybe not. But check anyway :D

    "Limited RGB" range will produce "crushed blacks" which make it almost impossible to see the difference between a dark gradient and genuine bottom of the colour range black, and it can get especially bad if you've got a mismatch between what the video card is sending and what the monitor/TV expects to receive (limited RGB to limited RGB will often look, if not great, not awful either).

    Note that even if you have your Nvidia GPU connected to a television, most recent televisions are more than capable of selecting both full and limited RGB range colour modes, and many will automatically assume that anything from a "PC" input source is going to use the full RGB input range. Also, many TV (and monitor) implementations of RGB colour range detection are also half-assed, and it is not uncommon for there to be bugs where "auto" modes don't actually automatically detect anything, and just bung the colour profile to something that is probably right, depending on the source input, but never actually checks whether it is. Which is pretty much what the Nvidia GPUs are doing.

    A variety of fixes can be used -

    * create a custom resolution (eg 1920x1080 @ 59hz automatic) in the Nvidia control panel and select it. This is a slightly crappier workaround these days, since Nvidia stopped you being able to duplicate existing resolutions with a custom one - eg, you can never create a 1920x1080@60hz res, since it will already exist. If you are using any kind of custom resolution already, you almost certainly don't have the bug, since AFAIK it is only applied to resolutions that are pre-defined "TV" resolutions. These resolutions show up as "Ultra HD, HD, SD" style resolutions, rather than "custom" or "PC" resolutions.

    * Durante (of geosatdo and dsfix fame) has produced a registry tweak that automatically changes all the predefined "TV" modes to full RGB range colour. You can get this tool here -


    it is a simple non-destructive fix to switch it back and forth between limited (default) and full (fix), if you ever need to change it again. The tool requires a reboot. The tool will need to be re-used if you ever perform a clean installation of drivers (via the 'clean install' option in Nvidia's setup program) or otherwise uninstall or clean the drivers fully out of your system. I have heard anecdotally that this does not actually work over displayport on the U2414H, but since my MSI 970GTX also hates displayport, I rapidly switched away from using that anyway.

    * CRU (custom resolution utility) can be used to remove all "TV" modes from the available list, and re-populate it with PC modes. On my U2414H monitor, this was as simple as running cru.exe, selecting "unselect all" on the left, "delete all" on the top and bottom panels, then "add"ing a new Detailed Resolution of 1920x1080@60hz LCD Automatic at the top panel, and the same to Standard at the bottom. Rebooted and the list of resolutions now showed only "PC" resolutions in the nvidia control panel. You can get CRU here -


    Sorry if this was all stuff everyone knew already but daaaaaaaaaaaaaaaaaamn this drove me insane trying to work it out. It is especially insidious on machines where you have a display cloned from a PC monitor and a TV over HDMI as well (GPU says, "oh, HDMI? Limited RGB for everyone!").

    Further reading including tips for ATI cards -

    • Like Like x 5
    • Informative Informative x 1
  2. piggsy

    piggsy Mu-43 Top Veteran

    Jun 2, 2014
    Brisbane, Australia
    Ah, and if you have general 970 over displayport issues like I did, nvidia now have a hotfix out for that -


    mine was just a bunch of general weirdness - refusing to hot swap, refusing to wake from standby, weird lines appearing, and all that seems to be gone with the hotfix according to users. Probably also a BIOS issue or some issue with the U2414H as well, it also had issues even POSTing over it sometimes and would give two POST beeps if the display was connected over DP.
  3. piggsy

    piggsy Mu-43 Top Veteran

    Jun 2, 2014
    Brisbane, Australia