Difference b/w ChangeDisplaySettings and SetDisplayConfig APIs wrt Window10+ RRS feed

  • Question

  • Hi,

    I am part of Display driver debugging team. I would like to know the difference b/w ChangeDisplaySettings and SetDisplayConfig APIs wrt to Window10 ? On Window10 OS, when I try to change the mode (Resolution and RR) using:

    • ChangeDisplaySettings API -> Call is landing in the IHV's display driver DDI DxgkDDICommitVidpn. Able to see mode set where DWM buffers are destroyed and re-created to match the resolution size. Can see a flash (Screen goes blank for a moment) when change in mode.
    • SetDisplayConfig API -> DDI DxgkDDICommitVidpn in IHV's display driver not getting hit. It seems OS doing virtual mode set (not IHV's display driver here) without IHV driver support. Seems DWM using its existing frame buffer and scaling accordingly without real mode set. Seems here Windows10 OS virtualizing resolution, scaling and rotation change. No flash observed rather can see real time re-sizing of the desktop screen.

    Can anyone please explain why this behavioral change in the two APIs even though both are supported on Windows 10 OS. Why ChangeDisplaySettings API not taking Window10's virtual mode set path? Please clarify.

    Thanks in advance.


    Thursday, December 22, 2016 12:40 PM