| Предыдущий | Следующий |
| DXGI_DDI_ERR_NONEXCLUSIVE | D3D11_ERROR_FILE_NOT_FOUND |
D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
Что означает D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS означает, что для одного устройства Direct3D 11 создано больше уникальных объектов состояния, чем допускает реализация. Для уровней возможностей до 11.1 предел составляет 4096.
Ошибка часто указывает на отсутствие дедупликации: логически одинаковые blend, rasterizer, depth-stencil или sampler states создаются снова и снова.
Что проверить
- Включите Direct3D debug layer и найдите первый вызов создания, который вернул ошибку.
- Считайте уникальные наборы дескрипторов, а не общее число ссылок на объекты.
- Проверьте, что кэш состояния использует содержимое дескриптора, а не временный адрес памяти.
- Освобождайте действительно ненужные объекты, но не рассчитывайте только на периодическую очистку.
Корректное решение — переиспользование эквивалентных immutable state objects. После исправления повторите тот же сценарий длительно, чтобы убедиться, что число уникальных состояний перестало расти.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.