| Anterior | Siguiente |
| E_SYNCENGINE_FOLDER_IN_REDIRECTION | D3D10_ERROR_FILE_NOT_FOUND |
D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
Qué significa D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS (-2005336063, 0x88790001) — 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 D3D10 alcanzado. Cuenta states por descriptor normalizado y cachea/reutiliza descriptores iguales. Corrige crecimiento no acotado; destruir el device solo reinicia el contador sin arreglar la estrategia.
Busca crecimiento de states en el device D3D10
Separa blend, depth-stencil, rasterizer y sampler states y calcula una clave sobre todos los campos del descriptor, normalizando padding. Toma snapshots por frame y por cambio de escena: el número debería estabilizarse. Si sigue creciendo, identifica qué campo cambia y corrige esa generación en lugar de destruir el device para reiniciar el límite.
Por qué importa distinguir D3D10 de D3D11
Aunque D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS comparte el concepto, los objetos pertenecen al device y al backend que los creó. Mide el cache D3D10 de forma independiente; un cache estable en D3D11 no demuestra que D3D10 reutilice sus descriptores.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.
