This swap chain interface allows desktop media applications to request a seamless change to a specific refresh rate.
For example, a media application presenting video at a typical framerate of 23.997 frames per second can request a custom refresh rate of 24 or 48 Hz to eliminate jitter. If the request is approved, the app starts presenting frames at the custom refresh rate immediately - without the typical 'mode switch' a user would experience when changing the refresh rate themselves by using the control panel.
The IDXGISwapChainMedia interface has these methods.
|IDXGISwapChainMedia::CheckPresentDurationSupport||Queries the graphics driver for a supported frame present duration corresponding to a custom refresh rate.|
|IDXGISwapChainMedia::GetFrameStatisticsMedia||Queries the system for a DXGI_FRAME_STATISTICS_MEDIA structure that indicates whether a custom refresh rate is currently approved by the system.|
|IDXGISwapChainMedia::SetPresentDuration||Requests a custom presentation duration (custom refresh rate).|
Seamless changes to custom framerates can only be done on integrated panels. Custom frame rates cannot be applied to external displays. If the DXGI output adapter is attached to an external display then CheckPresentDurationSupport will return (0, 0) for upper and lower bounds, indicating that the device does not support seamless refresh rate changes.
Custom refresh rates can be used when displaying video with a dynamic framerate. However, the refresh rate change should be kept imperceptible to the user. A best practice for keeping the refresh rate transition imperceptible is to only set the custom framerate if the app determines it can present at that rate for least 5 seconds.
|Minimum supported client||Windows 8.1 [desktop apps only]|
|Minimum supported server||Windows Server 2012 R2 [desktop apps only]|