| Previous | Next |
| DXGI_STATUS_OCCLUDED | DXGI_STATUS_NO_REDIRECTION |
DXGI_STATUS_CLIPPED
Interpret the result in its owning layer: status clipped
The useful interpretation of DXGI_STATUS_CLIPPED (0x087A0002) starts at the dxgi status boundary: the frame was accepted while only part of the swap-chain target was visible. In practical terms, inspect presentation clipping state before changing application-wide graphics settings.
DXGI_STATUS_CLIPPED: A DXGI status can describe a successful or temporarily invisible presentation. For DXGI_STATUS_CLIPPED, Converting every non-S_OK value into device recreation destroys useful state and can create a full-screen transition loop. For DXGI_STATUS_CLIPPED, the built-in one-line message identifies the immediate result; diagnosis also needs the producing API, object ownership and the display generation current at the time.
Capture before recreating objects
| Capture item | Why it matters for DXGI_STATUS_CLIPPED |
|---|---|
| Rejected boundary | the frame was accepted while only part of the swap-chain target was visible |
| Decisive capture | window rectangle, clipping region, desktop scaling, output rectangle and Present statistics around the transition |
| Current graph state | swap chain, target window, output and Present call |
| Supporting trace | Present/Present1 result history, WM_SIZE or WM_DISPLAYCHANGE messages, swap-chain description and current IDXGIOutput identity |
| Object identity | presentation clipping state |
For DXGI_STATUS_CLIPPED, preserve the unsigned HRESULT, symbolic name, first failing API and timestamp in one record. If cleanup later fails too, keep that secondary result separately from DXGI_STATUS_CLIPPED.
Reproduce one variable at a time
- Freeze the
DXGI_STATUS_CLIPPEDgeneration. Record window rectangle, clipping region, desktop scaling, output rectangle and Present statistics around the transition. Before diagnosingDXGI_STATUS_CLIPPED, do not resize, hot-plug, recreate or release the object under examination. - Run the narrow
DXGI_STATUS_CLIPPEDcomparison. move another top-level window over only part of the target and compare with full occlusion. During theDXGI_STATUS_CLIPPEDcomparison, keep every driver, monitor, resource format and unrelated policy unchanged. - Observe the layer after
DXGI_STATUS_CLIPPED. ForDXGI_STATUS_CLIPPED, if the exact check passes, record the next HRESULT or visible outcome. A different downstream result shows that theDXGI_STATUS_CLIPPEDboundary was crossed. - Repeat
DXGI_STATUS_CLIPPEDthrough a lifecycle transition. ForDXGI_STATUS_CLIPPED, exercise one relevant resize, mode switch, device recreation, hot-plug or session change and confirm that this result does not reuse stale handles.
The comparison with DXGI_STATUS_OCCLUDED is especially useful: DXGI_STATUS_OCCLUDED means no part of the presentation was visible. For DXGI_STATUS_CLIPPED, recording both names prevents a broad “graphics error” label from merging distinct ownership, capability and lifetime problems.
Recovery contract
Treat the status as visibility feedback, not as a device failure; continue or reduce work according to application policy. Repair of DXGI_STATUS_CLIPPED is complete only when the original call succeeds or returns its documented nonfatal status and the same lifetime test remains correct after a second display transition.
- The
DXGI_STATUS_CLIPPEDtrace identifies one producing API and one current graphics object, rather than only the final UI symptom. - The passing run changes exactly the condition described for
DXGI_STATUS_CLIPPED; unrelated adapter, monitor and application state remains unchanged. - For
DXGI_STATUS_CLIPPED, debug-layer, ETW or driver diagnostics no longer report the rejected presentation clipping state contract during the same scenario. - The application handles recurrence of
DXGI_STATUS_CLIPPEDwithout an unbounded retry loop, leaked resource, duplicate composition target or stale topology handle.
Implementation notes for DXGI_STATUS_CLIPPED
For DXGI_STATUS_CLIPPED, log Present/Present1 result history, WM_SIZE or WM_DISPLAYCHANGE messages, swap-chain description and current IDXGIOutput identity. When the DXGI_STATUS_CLIPPED path returns a count, size, status flag or replacement object, retain it even on a nonfatal result because it can direct the next call.
A production fallback for DXGI_STATUS_CLIPPED should be explicit: pause rendering, re-enumerate, rebuild one cache entry, recreate a device, or decline a protected path only when this layer calls for that action. Reinstalling every display component, deleting all caches or forcing a resolution change is not an evidence-based fix for DXGI_STATUS_CLIPPED.
Technical references
- Microsoft: DXGI status codes — background for the presentation clipping state boundary involved in
DXGI_STATUS_CLIPPED. - Microsoft: DXGI overview and presentation — background for the presentation clipping state boundary involved in
DXGI_STATUS_CLIPPED. - Microsoft: DXGI_PRESENT flags — background for the presentation clipping state boundary involved in
DXGI_STATUS_CLIPPED. - Microsoft: DXGI best practices — background for the presentation clipping state boundary involved in
DXGI_STATUS_CLIPPED.
Looking for a different code? Search another status or error code.