Проект llama.cpp выпустил сборку b10078, которая включает значительный рефакторинг бэкенда Vulkan для повышения эффективности синхронизации. Обновление интегрирует поддержку VK_KHR_internally_synchronized_queues, позволяя библиотеке абстрагировать отправку очередей в полиморфный интерфейс, который полностью обходит блокировку мьютекса на стороне хоста, если драйвер это поддерживает.
- Рефакторинг vk_queue для использования мьютексов на экземпляр и уникальных дескрипторов для эксклюзивного владения.
- Интеграция VK_KHR_internally_synchronized_queues для обхода блокировки мьютекса на стороне хоста при поддержке драйвером.
- Добавление определений резервного варианта и статических констант constexpr для обнаружения internallySynchronizedQueues.
- Исправление ошибок компиляции, дублирования цепочек pNext и проверок на null в деструкторе vk_device_struct.
Это изменение оптимизирует управление временем жизни и потокобезопасность, уменьшая избыточные вызовы API во время создания устройства.