| Предыдущий | Следующий |
| ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE | ERROR_GRAPHICS_ALLOCATION_CLOSED |
ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION
Что означает ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION
ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION означает конфликт владения графическим ресурсом: allocation всё ещё находится в состоянии CPU lock/mapping в момент, когда драйвер пытается использовать её для рендеринга.
Что проверить
- Для каждого lock запишите поток, диапазон, режим доступа и соответствующий unlock; особенно проверьте error/cancel paths.
- Не отправляйте command buffer, использующий этот ресурс, пока CPU mapping не завершён и требуемая синхронизация не выполнена.
- Если ресурс разделяется между потоками, ищите гонку между unlock одного потока и submit другого; одиночный тест может её не воспроизводить.
- После reset или device-lost не используйте сохранённое состояние старого mapping — получите актуальное состояние allocation заново.
Как подтвердить исправление
Исправление подтверждается нагрузочным тестом, в котором CPU mapping и GPU submission многократно чередуются без пересечения периодов владения и без повторного кода.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.