| Anterior | Siguiente |
| DXGI_DDI_ERR_NONEXCLUSIVE | D3D11_ERROR_FILE_NOT_FOUND |
D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
Qué significa D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS (-2005139455, 0x887C0001) — La aplicación superó el número máximo de objetos de estado únicos por dispositivo Direct3D. El límite es 4096 para niveles de característica hasta 11.1.
Direct3D valida recursos, state objects, views, adapters y compatibilidad de driver. Los límites de objetos y las reglas de Map/Discard son contratos del API; los retries no convierten una secuencia inválida en válida.
Qué demuestra este HRESULT
La condición específica es límite de state objects únicos de D3D11 alcanzado. Instrumenta Create*State y hash de descriptor. Reutiliza objetos equivalentes y elimina generación accidental por frame; un cache de states debe estabilizar su cardinalidad.
Audita Create*State y el cache de D3D11
Instrumenta cada CreateBlendState, CreateDepthStencilState, CreateRasterizerState y CreateSamplerState con un hash del descriptor completo. Agrupa por call site y cuenta cuántas claves nuevas aparecen por minuto o por frame. El objetivo es demostrar qué productor genera variantes únicas y hacer que el conjunto se estabilice.
No uses D3D10 como prueba sustituta
D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS pertenece a una generación anterior del API. Aunque el límite descrito pueda coincidir, el cache y las rutas de creación D3D11 son distintos; la verificación debe mostrar reutilización dentro del device D3D11 que devolvió este HRESULT.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.