| Previous | Next |
| DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED | DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED |
DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED
What Windows rejected: surface being rendered
DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED, value 0x88980801, is produced by dcomp when a new rendering operation was requested while BeginDraw state was already active for the surface. The investigation should stay attached to DirectComposition surface update lifetime and to the exact generation in which it was obtained.
Build a useful diagnostic record
| Capture item | Why it matters |
|---|---|
| Current graph state | DirectComposition device, target, visual tree and surface update transaction |
| Supporting trace | BeginDraw/EndDraw or target-creation sequence, Commit result, HWND ownership and CheckDeviceState output |
| Object identity | DirectComposition surface update lifetime |
| Rejected condition | a new rendering operation was requested while BeginDraw state was already active for the surface |
| What to capture | surface identity, BeginDraw/EndDraw pairs, update rectangle, drawing thread and exception paths |
Separate state from capability
- Call BeginDraw twice without the matching EndDraw and compare with a balanced update.
The comparison with DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED is especially useful: DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED is the opposite imbalance.
Verify the repaired path
Serialize surface updates and guarantee EndDraw through structured cleanup before beginning another frame.
- debug-layer, ETW or driver diagnostics no longer report the rejected DirectComposition surface update lifetime contract during the same scenario.
Technical references
- Microsoft: DirectComposition error codes — background for the DirectComposition surface update lifetime.
- Microsoft: DirectComposition reference
- Microsoft: IDCompositionDevice::Commit
- Microsoft: IDCompositionDevice::CheckDeviceState
Looking for a different code? Search another status or error code.