| Previous | Next |
| D3D12_ERROR_ADAPTER_NOT_FOUND | WINML_ERR_INVALID_DEVICE |
D3D12_ERROR_DRIVER_VERSION_MISMATCH
Interpret the result in its owning layer: driver version mismatch
D3D12_ERROR_DRIVER_VERSION_MISMATCH (0x887E0002) belongs to the d3d layer. It marks the adapter matches but the cached PSO was produced by another driver or runtime version, rather than a generic rendering failure. The object that owns the decision is cached Direct3D 12 pipeline state compatibility.
The debug layer should be enabled in a development build before changing resource lifetimes. These results usually identify a caller contract or cache-compatibility boundary, not a request to reinstall DirectX.
Capture before recreating objects
| Capture item | Why it matters |
|---|---|
| Rejected condition | the adapter matches but the cached PSO was produced by another driver or runtime version |
| What to capture | adapter LUID, current driver version, cache creation version, pipeline description hash and blob age |
| 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 | cached Direct3D 12 pipeline state compatibility |
Reproduce one variable at a time
- Capture the failing state. Record adapter LUID, current driver version, cache creation version, pipeline description hash and blob age.
- Upgrade or roll back the display driver while preserving a disposable pipeline cache.
The comparison with D3D12_ERROR_ADAPTER_NOT_FOUND is especially useful: D3D12_ERROR_ADAPTER_NOT_FOUND indicates hardware identity mismatch rather than driver-version mismatch.
Recovery contract
Invalidate the affected cache generation and recreate pipeline state from descriptors and shader bytecode.
- debug-layer, ETW or driver diagnostics no longer report the rejected cached Direct3D 12 pipeline state compatibility contract during the same scenario.
Implementation notes
Log Direct3D debug-layer output, object creation stacks, normalized descriptors, feature level and adapter/driver identity.
Technical references
- Microsoft: Direct3D 10 return codes — background for the cached Direct3D 12 pipeline state compatibility.
- 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.
