| Previous | Next |
| DXGI_ERROR_ALREADY_EXISTS | DXGI_DDI_ERR_UNSUPPORTED |
DXGI_DDI_ERR_WASSTILLDRAWING
Why this is not a generic GPU failure: ddi err wasstilldrawing
DXGI_DDI_ERR_WASSTILLDRAWING (0x887B0001) belongs to the dxgi error layer. It marks the driver could not complete a nonblocking request because the GPU still owned a required resource, rather than a generic rendering failure. The object that owns the decision is user-mode display driver scheduling point.
The smallest evidence set
| Capture item | Why it matters |
|---|---|
| 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 | user-mode display driver scheduling point |
| Rejected condition | the driver could not complete a nonblocking request because the GPU still owned a required resource |
| What to capture | DDI call, resource handles, synchronization flags, last submitted command buffer, fence value and whether the caller requested no wait |
A/B test for the exact condition
- Wait for the owning fence or remove the nonblocking flag and repeat the identical operation.
The comparison with DXGI_ERROR_WAS_STILL_DRAWING is especially useful: DXGI_ERROR_WAS_STILL_DRAWING is the runtime-facing equivalent returned to applications.
Safe remediation
Use explicit synchronization and bounded retry; avoid a busy loop that increases queue pressure.
- debug-layer, ETW or driver diagnostics no longer report the rejected user-mode display driver scheduling point contract during the same scenario.
Technical references
- Microsoft: DXGI error codes — background for the user-mode display driver scheduling point.
- Microsoft: DXGI overview
- Microsoft: Direct3D 12 shader cache StoreValue
- Microsoft: Handle device-removed scenarios
Looking for a different code? Search another status or error code.
