| Предыдущий | Следующий |
| E_SYNCENGINE_FOLDER_IN_REDIRECTION | D3D10_ERROR_FILE_NOT_FOUND |
D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS
Практический смысл результата
Если получен D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS, непосредственно известно следующее: Приложение превысило максимальное число уникальных объектов состояния для одного устройства Direct3D. Для уровней возможностей до 11.1 предел равен 4096. Для Direct3D resource/state-object contract это достаточно конкретный сигнал, поэтому важно сохранить входы первого отказавшего вызова.
Параметры контрольного случая
- Зафиксируйте adapter LUID, driver version, feature level, object count/cache, resource/view identity и debug-layer message; для этого результата эти данные должны относиться к первому неуспешному вызову, а не к cleanup после него.
- Отдельно считайте уникальные immutable state keys и исключите бесконтрольное создание state objects. Это проверяет условие «Приложение превысило максимальное число уникальных объектов состояния для одного устройства Direct3D. Для уровней возможностей до 11.1 предел равен 4096» по фактическим параметрам, а не по имени константы.
- Сохраните технические маркеры
D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTSи один исправный запуск с теми же входными данными.
Отделение соседних состояний
Минимальный тест должен повторить создание конкретного state/view/pipeline объекта на той же конфигурации после исправления входного условия. После этого повторите негативный вариант, чтобы fallback не был принят за исправление.
Избегайте недоказанного workaround: не очищать весь graphics cache, если можно проверить один объект и его ключ. После исправления должен проходить тот же контракт, который раньше возвращал HRESULT.
Ближайший по прежнему шаблону результат D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION не следует считать эквивалентным: сравнивайте точное условие, указанное здесь, и первую различающуюся операцию.
Технические ссылки
- Microsoft: Direct3D 10 return codes
- Microsoft: Direct3D 11 return codes
- Microsoft: Direct3D 12 return codes
- Microsoft: Use the Direct3D 11 debug layer
- Документация Direct2D
Нужно найти другой код? Найти другой код состояния или ошибки.
