How to enable dithering on Nvidia GeForce with Windows OS

Home Forums Help and Support How to enable dithering on Nvidia GeForce with Windows OS

Viewing 15 posts - 1 through 15 (of 23 total)
  • Author
    Posts
  • #15892

    Enterprise24
    Participant
    • Offline

    Hi I am new to this forums. As everyone probably know. Dithering on Nvidia GPU only present on Quadro or GeForce with only Linux OS.

    Someone discovered how to enable dithering GeForce GPU with Windows OS by modifying registries.

    I will quote method from Guzz @ GeForce forums. He is our hero. Here is original link. https://forums.geforce.com/default/topic/1082681/geforce-drivers/is-it-possible-to-quot-port-quot-dithering-from-nvidia-x-server-to-geforce-driver-/post/5934577/#5934577

    ”Guzz” wrote:

    I managed to unlock all classes in NVWMI, so I checked how dithering works.
    It’s not true that dithering is completely disabled, by default the driver control dither state and it depend from output color depth, color format and dynamic range.
    For example, with “Full” dynamic range dithering is disabled, but with “Limited” range dithering is enabled with “Temporal” mode.

    I was right about “DitherRegistryKey”, this key is control dithering.

    How to enable/disable dithering:

    • Export your registry settings from:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\State\DisplayDatabase\YOUR_DISPLAY_NAME_HERE
      or
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\DisplayDatabase\YOUR_DISPLAY_NAME_HERE
    • Add into your exported registry file one of the following setting:
    1. ditherState – Enabled; ditherBits – 6 bit; ditherMode – SpatialDynamic
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,00,00,00,ed,00,00,00
    2. ditherState – Enabled; ditherBits – 6 bit; ditherMode – SpatialStatic
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,00,01,ef,00,00,00
    3. ditherState – Enabled; ditherBits – 6 bit; ditherMode – SpatialDynamic2x2
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,00,02,f0,00,00,00
    4. ditherState – Enabled; ditherBits – 6 bit; ditherMode – SpatialStatic2x2
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,00,03,f1,00,00,00
    5. ditherState – Enabled; ditherBits – 6 bit; ditherMode – Temporal
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,00,04,f2,00,00,00
    6. ditherState – Enabled; ditherBits – 8 bit; ditherMode – SpatialDynamic
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,01,00,ef,00,00,00
    7. ditherState – Enabled; ditherBits – 8 bit; ditherMode – SpatialStatic
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,01,01,f0,00,00,00
    8. ditherState – Enabled; ditherBits – 8 bit; ditherMode – SpatialDynamic2x2
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,01,02,f1,00,00,00
    9. ditherState – Enabled; ditherBits – 8 bit; ditherMode – SpatialStatic2x2
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,01,03,f2,00,00,00
    10. ditherState – Enabled; ditherBits – 8 bit; ditherMode – Temporal
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,01,04,f3,00,00,00
    11. ditherState – Enabled; ditherBits – 10 bit; ditherMode – SpatialDynamic
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,02,00,f0,00,00,00
    12. ditherState – Enabled; ditherBits – 10 bit; ditherMode – SpatialStatic
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,02,01,f1,00,00,00
    13. ditherState – Enabled; ditherBits – 10 bit; ditherMode – SpatialDynamic2x2
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,02,02,f2,00,00,00
    14. ditherState – Enabled; ditherBits – 10 bit; ditherMode – SpatialStatic2x2
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,02,03,f3,00,00,00
    15. ditherState – Enabled; ditherBits – 10 bit; ditherMode – Temporal
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,01,01,02,04,f4,00,00,00
    16. ditherState – Default
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,00,00,01,04,f1,00,00,00
    17. ditherState – Disabled
      "DitherRegistryKey"=hex:db,01,00,00,10,00,00,00,02,00,01,04,f3,00,00,00
    • Import your new registry settings
    • Reboot or restart video driver using restart64.exe – cru-1.4.1.zip

    The only drawback is hit or miss. Sometimes it work while sometimes it doesn’t work. The reason is probably Nvidia driver rounding VCGT from 16 bit to 8 bit with certain scenario such as after monitor wake up from sleep or after computer wake up from sleep. Occasionally happen while playing games / turn on PC / restart PC / sign out and sign in. The only workaround to deal with this as far as I know is to try sign out and sign in again. But in my experience if 3  sign out and sign in doesn’t work I need to restart which again depend on luck.

    Guzz told me that his workaround is try to switching resolution to whatever and switch back again. I try it but never success. YMMV.

    #15924

    Omelette
    Participant
    • Offline

    Thank you! I got rid of the banding from the graphics card calibration correction curves that DisplayCAL loaded on my GPU.

    I’m using the 8 bit temporal mode. The 10 bit mode didn’t work at all. I had to restart Windows to make it work. Now it’s still working even after restarting.

    DisplayCAL was reporting “Effective LUT entry depth seems to be 8 bits”. After the fix, it says “12 bits” instead.

    I’m using a GTX 1060 (drivers 419.17) connected to a Dell U2412M (6-bit + A-FRC) via DisplayPort.

    I still suffer the banding introduced by color-managed image viewers, though. But that’s the program to blame. To properly see if this fix is working, you have to check the banding in a not color managed program, as Paint.

    • This reply was modified 5 years ago by Omelette.
    #16542

    Enterprise24
    Participant
    • Offline

    Wow didn’t know that my post got sticky. Thanks Florian.

    A little update from my experience and several talk with other people.

    You should try Win 7 or Win 10 1607. Later version of Windows 10 starting with 1703 introduce problems.

    Win 7 = No problems (meaning once you setup dithering it will work forever).
    Win 8 / 8.1 / Win 10 1507 / 1511 = No report so far.
    Win 10 1607 = Same as Win 7.
    Win 10 1703 / 1709 / 1803 = Dithering losing effect when PC or monitor wake up from sleep. Also you must disable dithering before shutdown / restart and enable it again once you get into Windows since there is no guarantee that dithering will work on the next boot. Sometimes it will work while sometimes doesn’t. By disable it before next boot is a 100% way to guarantee that it will work next time. (credit to sonicblue83 @ GeForce forums who find this method).
    Win 10 1809 = Same as above but introduce more problem like dithering stop working randomly during gaming / watching movies.
    Win 10 1903 = Same as 1809 plus even more disaster. There is constant banding everywhere even if you not touching gamma in software level.

    Here are my final templates for reproduce problems on Windows 10 1703 and later and how to fix it.

    1.Disable dithering -> shut down -> turn on PC -> enable dithering = 100% success.
    2.Disable dithering -> restart -> enable dithering = 100% success for the following cases.
    3.Forget to disable dithering -> shut down -> turn on PC -> dithering success is depend on luck. If unlucky then need to repeat step 2.
    4.Forget to disable dithering -> restart -> dithering success is depend on luck. If unlucky then need to repeat step 2.
    5.Disable dithering -> sign out -> sign in -> enable dithering = 100% success for the following cases.
    6.Monitor wake up from sleep. Repeat step 2 or 6.
    7.PC wake up from sleep. Repeat step 2 or 6.

    (1809 and 1903 only) 8.Dithering stop working during gaming / watching movies. Need to repeat step 2.

    TLDR if you want to avoid all of these problems your best bet is to stick with Win 7 or Win 10 1607.

    #17930

    asdfage wegagag
    Participant
    • Offline

    Has this been reported to Nvidia ? Perhaps they’ll roll out a fix so we can get some -reliable dither- ? 😀

    #17931

    Enterprise24
    Participant
    • Offline

    Has this been reported to Nvidia ? Perhaps they’ll roll out a fix so we can get some -reliable dither- ? ????

    I talk with Nvidia lv.2 support (Derrect) 3 times in the past 1.5 year and he just keep repeating I will pass along feedback to driver team blah blah blah.

    Today I just did some benchmark about performances different between dithering off and on.

    Test system.
    8 bit temporal dithering was used in this test.
    i7-8700K @ 5Ghz core & 4.8Ghz uncore
    ASRock Z370 Taichi P4.00
    2x8GB DDR4-3500 16-18-18-36-2T
    EVGA GTX 1080 Ti @ 2126 core / 12474 mem
    Corsair HX 750W
    NZXT H440 White
    Custom Water Cooling
    Windows 10 64 bit 1607
    Nvidia 430.64
    Record by ShadowPlay

    FPS and frametimes measure by MSI Afterburner and Rivatuner statistic.

    As you can see there is absolutely no different. I still wonder why Nvidia doesn’t support it officially. It doesn’t make 1080 Ti perform like 1080 when enable dithering

    If you want to see realtime side by side comparison try watching this video.

    • This reply was modified 4 years, 9 months ago by Enterprise24.
    #19238

    Mike8040
    Participant
    • Offline

    How did you guys find out what the monitor device is. I got over 12 weird named entries in there and none of it is named LG34UM…?

    And isn’t easier to back up and create the dword key DitherRegistryKey just in regedit?

    Attachments:
    You must be logged in to view attached files.
    #19240

    Mike8040
    Participant
    • Offline

    Can’t edit for whatever reason… Just for the case anyone is not that geeky like I’m to know it in the first place. I found it in the other thread. One have to look into the device manager / detail tab of the monitor how its called under deviceID and guess further if there are more then one entry in the reg editor.

    #19262

    Darkmatter
    Participant
    • Offline

    For the garble of numbers, parts of it is the model number of the monitor, and part of it conforms to parts of the serial number which should be either on the back of your monitor, under it, or some other out of the way spot. Your other option would be to add the key to every monitor, but that shouldn’t be needed. The model number is probably all you need to look for. It’s near the beginning of the long string of characters and numbers.

    As for not being able to edit it, you need to right click (as I recall) and go into permissions and grant (I think it was “System”) full control over the key. You might also need to give yourself permission too. You will need to be logged in with one of Windows regular “Admin” accounts to make this change.

    Hope that helps!

    DM

    #19987

    Pollypop
    Participant
    • Offline

    I am missing the state drop down under the nvlddmkm section of regedit, I am using windows 7 Build 7601

    Nvidia 1080 (non TI) – (Driver 26.21.14.3039) (driver date 4/172019)

    Edit: it appears the state drop down is missing but the display database is still available I can try to enable it by locating the display id as stated above.

    edit 2: I have successfully added the dither section into my monitors (3 of them) and I can see a pretty big jump with 10bit temporal, I will try 8 bit temporal and see if anything changes that way.

    • This reply was modified 4 years, 6 months ago by Pollypop.
    • This reply was modified 4 years, 6 months ago by Pollypop.
    Attachments:
    You must be logged in to view attached files.
    #19991

    Pollypop
    Participant
    • Offline

    It seems through testing the best looking image that I got was using the 10bit temporal dithering keys.

    #20278

    asdfage wegagag
    Participant
    • Offline

    Is there a way to enable this on optimus laptops ?, In my  -Display Database-, I only see  adapter, and connector,  which entry  is it ?

    #28888

    benjamin
    Participant
    • Offline

    When I enable dithering 8bit temporal, on my Acer xb271hu, it causes clipping in this white test, box 254 is no longer visible :

    http://www.lagom.nl/lcd-test/white.php#whitetest.png

    This occurs with or without a icc profile installed.  As soon as I disable dithering, box 254 is visible again.

    Gpu : Nvidia 2080ti, Windows 10.  Lagom white test image was downloaded and opened on the desktop.

    • This reply was modified 3 years ago by benjamin.
    • This reply was modified 3 years ago by benjamin.
    • This reply was modified 3 years ago by benjamin.
    • This reply was modified 3 years ago by benjamin.
    #29220

    mat a
    Participant
    • Offline

    Is the bit mode dependent on the type of panel?

    If my panel is 8bits (6bits+FRC), what is the correct bit mode (6 or 8)?

    Thanks

    #29488

    Slandolyx
    Participant
    • Offline

    You guys seem like experienced in this stuff so hope you help me out. I have a notebook with Nvidia GPU and LVDS built-in monitor (2011-2012 model). I had these distortion in game which really kill the view, especially in a dark area – I couldn’t see sharp what I needed and objects are not distinguishable in that mess.

    Here is a schematic view of what I had. Note that when I recorded video with Shadowplay I still saw these distortions which makes me think this is in GPU itself rather than hardware monitor’s problem. What I read makes me believe this is dithering what I see. Funny enough, for about half a year I no more see those artifacts but I a afraid what gonna do if those appear again so ask for technical knowledge: what that is and what to do if it happens.

    • This reply was modified 2 years, 11 months ago by Slandolyx.
    Attachments:
    You must be logged in to view attached files.
    #29494

    mat a
    Participant
    • Offline

    Could you post an actual screenshot of the problem? I am not sure that this is a dithering issue though I could be wrong.

Viewing 15 posts - 1 through 15 (of 23 total)

You must be logged in to reply to this topic.

Log in or Register

Display Calibration and Characterization powered by ArgyllCMS