What does HRESULT 0x887A0035 (DXGI_ERROR_CACHE_HASH_COLLISION) mean?

 
Previous Next
DXGI_ERROR_CACHE_FULL DXGI_ERROR_ALREADY_EXISTS

DXGI_ERROR_CACHE_HASH_COLLISION

What Windows rejected: cache hash collision

DXGI_ERROR_CACHE_HASH_COLLISION, value 0x887A0035, is produced by dxgi error when the hash bucket contained an entry whose complete key did not equal the caller-provided key. The investigation should stay attached to shader-cache key integrity and to the exact generation in which it was obtained.

Build a useful diagnostic record

Capture itemWhy it matters
Rejected conditionthe hash bucket contained an entry whose complete key did not equal the caller-provided key
What to capturefull key bytes, hash function input, stored key, cache namespace, driver version and whether keys were truncated or serialized differently
Current graph stateDXGI factory, adapter, device, resource or cache session
Supporting traceDXGI debug messages, adapter LUID, driver version, device-removal reason where applicable and the exact API parameters
Object identityshader-cache key integrity

Separate state from capability

  1. Capture the failing state. Record full key bytes, hash function input, stored key, cache namespace, driver version and whether keys were truncated or serialized differently.
  2. Store two controlled keys with the same supplied hash while preserving their distinct full key data.

The comparison with DXGI_ERROR_ALREADY_EXISTS is especially useful: DXGI_ERROR_ALREADY_EXISTS means the desired element itself already exists.

Verify the repaired path

Use stable complete keys, handle collisions explicitly and replace only entries proven to belong to the same key.

  • debug-layer, ETW or driver diagnostics no longer report the rejected shader-cache key integrity contract during the same scenario.

Implementation notes

Technical references


Looking for a different code? Search another status or error code.