0

Microsoft documentation and sample code claims that DXGI can switch a monitor between HDR/SDR modes. However running the code sample D3D12HDR and changing the swap chain format does not change the monitor mode for me.

I am only able to set the screen into hdr either through:

  • windows display settings, "Play HDR games and apps" toggle switch
  • nvidia api functions

Is it possible to change the monitor's HDR mode using only DXGI API? My monitor is an ASUS XG27U.

Octo
  • 543
  • 1
  • 5
  • 16
  • The sample will render differently only if the monitor is enabled for HDR. I don't think you can change the fact HDR is enabled using DXGI, but instead with CCD (https://learn.microsoft.com/en-us/windows-hardware/drivers/display/connecting-and-configuring-displays) and DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE struct (wingdi.h) – Simon Mourier Aug 02 '21 at 17:27
  • I'm not sure that apps can use DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE. Note that no details for it are documented. Changing the display mode from SDR to HDR requires coordination between the display, the display adapter, the Windows display pipeline and Desktop Window Manager: all of them need to switch modes. I'm not sure that can be achieved using this. – Peter Constable Aug 07 '21 at 20:09

1 Answers1

1

There are no DX APIs to set the display into HDR mode. It must be enabled in Windows display settings.

Use of the NVIDIA API functions is discouraged.

Peter Constable
  • 2,707
  • 10
  • 23