Queued present model is being deprecated

Platforms

Clients – After Windows 8
Servers – After Windows Server 2012

Description

In the Windows release after Windows 8, these APIs will return E_NOTIMPL:

  • DwmSetPresentParameters
  • DwmSetDxFrameDuration
  • DwmModifyPreviousDxFrameDuration

In addition, this API will only accept the NULL value for the hwnd parameter:

  • DwmGetCompositionTimingInfo

We will stop supporting DwmGetCompositionTimingInfo with hwnd != NULL and remove associated functionality. If non-NULL value for hwnd is specified, this API will return E_INVALIDARG.

We also discourage the use of DwmGetCompositionTimingInfo API and suggest that developers switch to the DXGI flip model and associated DX present statistics API.

Manifestation

Applications that use the queued present model will not function correctly. The exact manifestation depends on the particular application, but can range from incorrect presentation timing to the application exiting unexpectedly). In practice, we do not expect to see many (if any) such applications. This model was used by Vista media player, which will not be used on Windows 8 (and possibly the old Zune player). At this time we don’t have info about any other applications actually using this model.

Solution

Developers need to use the DXGI flip presentation mode instead of queued present (available in DX9 runtime since Windows 7, and on DX10 and DX11 runtimes in Windows 8).

Tests

Run general tests to ensure that inbox Windows components and major products continue to work on the next version of Windows.