What does HRESULT 0x087A0007 (DXGI_STATUS_MODE_CHANGED) mean?

 
Previous Next
DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE DXGI_STATUS_MODE_CHANGE_IN_PROGRESS

DXGI_STATUS_MODE_CHANGED

Interpret the result in its owning layer: status mode changed

The useful interpretation of DXGI_STATUS_MODE_CHANGED (0x087A0007) starts at the dxgi status boundary: a display-mode change invalidated the first visibility attempt and DXGI retried presentation under the new mode. In practical terms, inspect swap-chain display-mode synchronization before changing application-wide graphics settings.

Capture before recreating objects

Capture itemWhy it matters
Object identityswap-chain display-mode synchronization
Rejected conditiona display-mode change invalidated the first visibility attempt and DXGI retried presentation under the new mode
What to captureold and new output modes, WM_DISPLAYCHANGE/WM_SIZE order, swap-chain dimensions, refresh rate and Present statistics
Current graph stateswap chain, target window, output and Present call
Supporting tracePresent/Present1 result history, WM_SIZE or WM_DISPLAYCHANGE messages, swap-chain description and current IDXGIOutput identity

Reproduce one variable at a time

  1. Capture the failing state. Record old and new output modes, WM_DISPLAYCHANGE/WM_SIZE order, swap-chain dimensions, refresh rate and Present statistics.
  2. Change resolution or rotate the output during presentation and compare with a stable-mode run.

The comparison with DXGI_STATUS_MODE_CHANGE_IN_PROGRESS is especially useful: DXGI_STATUS_MODE_CHANGE_IN_PROGRESS means a competing transition is still underway.

Recovery contract

Refresh cached output information and resize buffers when the window receives the mode-change notifications.

  • debug-layer, ETW or driver diagnostics no longer report the rejected swap-chain display-mode synchronization contract during the same scenario.

Implementation notes

Technical references


Looking for a different code? Search another status or error code.