| Previous | Next |
| DXGI_DDI_ERR_NONEXCLUSIVE | D3D11_ERROR_FILE_NOT_FOUND |
D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
What Windows rejected: too many unique state objects
Windows reports D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS (0x887C0001) at the d3d checkpoint. Here, the device accumulated more unique state descriptions than the runtime supports. That narrows the first investigation to Direct3D 11 immutable state-object population instead of the entire GPU stack.
Build a useful diagnostic record
| Capture item | Why it matters |
|---|---|
| Rejected condition | the device accumulated more unique state descriptions than the runtime supports |
| What to capture | counts for sampler, blend, rasterizer and depth-stencil objects, descriptor hashes and release lifetime |
| Current graph state | Direct3D device plus the descriptor, resource or cached pipeline object supplied by the application |
| Supporting trace | Direct3D debug-layer output, object creation stacks, normalized descriptors, feature level and adapter/driver identity |
| Object identity | Direct3D 11 immutable state-object population |
Separate state from capability
- Capture the failing state. Record counts for sampler, blend, rasterizer and depth-stencil objects, descriptor hashes and release lifetime.
- Replace per-material object creation with descriptor interning and compare the unique-object count.
The comparison with D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS is especially useful: D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS concerns resource views rather than pipeline state.
Verify the repaired path
Cache and share equivalent state objects across draws and command lists.
- debug-layer, ETW or driver diagnostics no longer report the rejected Direct3D 11 immutable state-object population contract during the same scenario.
Implementation notes
Technical references
- Microsoft: Direct3D 10 return codes — background for the Direct3D 11 immutable state-object population.
- Microsoft: Direct3D 11 return codes
- Microsoft: Direct3D 12 return codes
- Microsoft: Use the Direct3D 11 debug layer
Looking for a different code? Search another status or error code.