| Previous | Next |
| DXGI_ERROR_NOT_CURRENT | DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION |
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY
Locate the failing graphics boundary: hw protection outofmemory
The useful interpretation of DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY (0x887A0030) starts at the dxgi error boundary: creation or use of protected graphics resources exceeded the memory available to the hardware-protection path. In practical terms, inspect hardware-protected memory pool before changing application-wide graphics settings.
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY: Do not erase all shader caches or recreate every graphics object before preserving the first failing call. For DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, Cache, policy, remote-session and device-lifetime failures have different recovery rules. For DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, 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.
Evidence that makes this result actionable
| Capture item | Why it matters for DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY |
|---|---|
| Rejected boundary | creation or use of protected graphics resources exceeded the memory available to the hardware-protection path |
| Decisive capture | protected-session type, protected resource dimensions, format, allocation count, adapter budget and protection capability queries |
| Current graph state | DXGI factory, adapter, device, resource or cache session |
| Supporting trace | DXGI debug messages, adapter LUID, driver version, device-removal reason where applicable and the exact API parameters |
| Object identity | hardware-protected memory pool |
For DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, 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_ERROR_HW_PROTECTION_OUTOFMEMORY.
A controlled comparison
- Freeze the
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORYgeneration. Record protected-session type, protected resource dimensions, format, allocation count, adapter budget and protection capability queries. Before diagnosingDXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, do not resize, hot-plug, recreate or release the object under examination. - Run the narrow
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORYcomparison. repeat with a smaller protected allocation set while leaving unprotected rendering unchanged. During theDXGI_ERROR_HW_PROTECTION_OUTOFMEMORYcomparison, keep every driver, monitor, resource format and unrelated policy unchanged. - Observe the layer after
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY. ForDXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, if the exact check passes, record the next HRESULT or visible outcome. A different downstream result shows that theDXGI_ERROR_HW_PROTECTION_OUTOFMEMORYboundary was crossed. - Repeat
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORYthrough a lifecycle transition. ForDXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, 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_ERROR_CANNOT_PROTECT_CONTENT is especially useful: DXGI_ERROR_CANNOT_PROTECT_CONTENT concerns unsupported protection capability rather than exhausted protected memory. For DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, recording both names prevents a broad “graphics error” label from merging distinct ownership, capability and lifetime problems.
Correction and proof
Release protected resources, reduce their footprint and recreate the protected session according to the content-protection policy. Repair of DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY 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_ERROR_HW_PROTECTION_OUTOFMEMORYtrace 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_ERROR_HW_PROTECTION_OUTOFMEMORY; unrelated adapter, monitor and application state remains unchanged. - For
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, debug-layer, ETW or driver diagnostics no longer report the rejected hardware-protected memory pool contract during the same scenario. - The application handles recurrence of
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORYwithout an unbounded retry loop, leaked resource, duplicate composition target or stale topology handle.
Implementation notes for DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY
For DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY, log DXGI debug messages, adapter LUID, driver version, device-removal reason where applicable and the exact API parameters. When the DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY 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_ERROR_HW_PROTECTION_OUTOFMEMORY 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_ERROR_HW_PROTECTION_OUTOFMEMORY.
Technical references
- Microsoft: DXGI error codes — background for the hardware-protected memory pool boundary involved in
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY. - Microsoft: DXGI overview — background for the hardware-protected memory pool boundary involved in
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY. - Microsoft: Direct3D 12 shader cache StoreValue — background for the hardware-protected memory pool boundary involved in
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY. - Microsoft: Handle device-removed scenarios — background for the hardware-protected memory pool boundary involved in
DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY.
Looking for a different code? Search another status or error code.