Hi there,
I am working on HDR output support in the Godot game engine and have come across an unexpected behaviour in NVIDIA Windows drivers that I cannot reproduce with other GPU drivers, such as AMD integrated graphics or Intel integrated graphics.
Initially I believed this issue might be better posted in the drivers category, but after more testing I have found that this issue seems to be specific to DXGI swapchains; I am not able to reproduce the same severity of banding with a Vulkan HDR swapchain using equivalent configurations.
The issue that I am experiencing can be reproduced using an unmodified version of Microsoft’s D3D12 HDR output sample project. To reproduce the issue:
- Use a high-quality HDR monitor that supports 10-bit full range RGB, such as the Asus PA32UCDM
- Ensure HDMI output to the monitor is full range RGB, 10-bit HDR
- Run the sample project
- Press spacebar to enter full screen mode and use Pg Up / Pg Down to compare
DXGI_FORMAT_R10G10B10A2_UNORMandDXGI_FORMAT_R16G16B16A16_FLOAT - Note that uneven banding that is not related to 10-bit quantization is visible on the gradients with
DXGI_FORMAT_R10G10B10A2_UNORM - Press spacebar to leave full screen mode
- Note that the uneven banding is no longer visible, no matter what size the window is
I have also created a modified version of this sample project that makes the issue more visible. This modified version can be found here: GitHub - allenwp/DirectX-Graphics-Samples at banding-test-pattern
The following image shows eight photos of different swapchain formats with NVIDIA Intel, and AMD drivers, showing that the issue is specific to NVIDIA drivers:
I have reproduced this issue on two different computers with Windows 11 Pro Version 10.0.26100 Build 26100 with an NVIDIA GeForce RTX 5070 Ti with these driver versions:
Game ready: 581.08 and 577.0
Studio: 580.97
Some more notes:
- Before installing these drivers, I have tried running
CleanupTool_1.0.20.0.exeas an administrator and rebooted. https://developer.nvidia.com/cleanup-tool - Enabling Debug Mode from the NVIDIA control pannel does not change the behaviour
- I am not aware of any overlays that may be running on my computer (NVIDIA Experience/App is not installed and Discord/Steam/etc are not running)
Thanks for your help,
Allen
