Что означает код HRESULT 0x88790001 (D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS)?

 
Предыдущий Следующий
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 не следует считать эквивалентным: сравнивайте точное условие, указанное здесь, и первую различающуюся операцию.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.