Что означает код HRESULT 0x887A0035 (DXGI_ERROR_CACHE_HASH_COLLISION)?

 
Предыдущий Следующий
DXGI_ERROR_CACHE_FULL DXGI_ERROR_ALREADY_EXISTS

DXGI_ERROR_CACHE_HASH_COLLISION

Что означает DXGI_ERROR_CACHE_HASH_COLLISION

DXGI_ERROR_CACHE_HASH_COLLISION (0x887A0035) — Запись кэша найдена, но переданный ключ не совпадает с ключом, сохранённым в записи.

Контекст результата 0x887A0035 — подсистема «DXGI» и область «адаптеры, outputs, swap chain, shared resources и представление кадров». Условие «запись кэша найдена, но переданный ключ не совпадает с ключом, сохранённым в записи» указывает на тему «кэш, hash, collision», а не на общий отказ всего компонента.

Что проверить и как подтвердить исправление

Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0x887A0035 и условии «запись кэша найдена, но переданный ключ не совпадает с ключом, сохранённым в записи» сохраните исходные байты и проверьте формат, размер, подпись или checksum до любых преобразований; сравните с заведомо исправным образцом.

Перед повтором 0x887A0035 зафиксируйте LUID адаптера, feature level, параметры swap chain/output и сообщения DXGI/DRED/debug layer; отдельно запишите HRESULT, LUID. Различия по теме «кэш, hash, collision» для 0x887A0035 покажут, изменился ли первый неуспешный этап.

Коррекция для 0x887A0035 должна быть предметной: исправляйте конкретное ограничение режима или ресурса; после device removed/access lost пересоздайте устройство и все зависящие от него объекты. Для 0x887A0035 и сообщения «запись кэша найдена, но переданный ключ не совпадает с ключом, сохранённым в записи» общий сброс допустим лишь как контроль, но не как доказательство причины.

Повторите операцию в том же окружении и сравните первый отличающийся вызов; для результата 0x887A0035 это надёжнее единичного успеха на других данных.

Документация для результата 0x887A0035: DXGI error codes · DXGI overview · Direct3D 12 shader cache StoreValue.


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