| Предыдущий | Следующий |
| E_SYNCENGINE_FOLDER_IN_REDIRECTION | D3D10_ERROR_FILE_NOT_FOUND |
D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
Что означает D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS означает, что приложение создало слишком много уникальных объектов состояния для одного устройства Direct3D. Для уровней возможностей до 11.1 документированный предел составляет 4096.
Обычно проблема возникает, когда приложение создаёт новый sampler/rasterizer/blend/depth-stencil state для каждого кадра или параметра вместо повторного использования эквивалентных объектов.
Что проверить
- Считайте число уникальных наборов параметров, передаваемых в методы создания state objects.
- Включите debug layer и сохраните сообщение первого неуспешного вызова.
- Проверьте ключ кэша: одинаковые состояния должны переиспользоваться.
- Сопоставьте adapter LUID, feature level и версию драйвера при воспроизведении.
Исправление — ограничить число действительно уникальных состояний и кэшировать неизменяемые объекты. Очистка всего графического кэша без исправления алгоритма лишь отложит повторное достижение лимита.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.