Vulkan 1.3.278 Выпущен с двумя новыми расширениями - одно поможет Wine / Steam играть Vulkan 1.3.278 был опубликован сегодня утром, и в дополнение к обычным исправлениям / разъяснениям документации, на подходе также два новых расширения Vulkan. Первое новое расширение Vulkan с версией v1.3.278 - VK_EXT_map_memory_placed. Расширение VK_EXT_map_memory_placed, над которым работали Collabora, AMD, NVIDIA, Valve и CodeWeavers, должно помочь в играх под Linux с игрой в Steam от Wine / Valve (Proton). VK_EXT_map_memory_placed позволяет запрашивать размещение карты памяти по определенному виртуальному адресу. Создание объекта VkDeviceMemory в адресном пространстве конкретного клиента разрабатывалось большую часть прошлого года. Разработчики Wine попросили улучшить поддержку 32-разрядных приложений Windows при использовании 64-разрядных драйверов Vulkan. Если 64-разрядный драйвер Vulkan возвращает указатель из vkMapMemory, с которым пользователь 32-разрядного API не может справиться из-за того, что он выходит за пределы 32-разрядного диапазона, возникают проблемы. Но, используя VK_EXT_map_memory_placed для обеспечения приемлемого диапазона объектов памяти, можно работать с 32-разрядным программным обеспечением Windows в Wine, чтобы объекты памяти не выходили за пределы 32-разрядного диапазона. Это расширение VK_EXT_map_memory_placed также упоминалось в контексте MoltenVK для поддержки Vulkan API на устройствах Apple Metal для iOS / macOS, так что это расширение будет полезно и там, в том числе при продолжении поддержки DXVK. Другое новое расширение, получившее название сегодня, называется VK_NV_shader_atomic_float16_vector. Это расширение от производителя NVIDIA с VK_NV_shader_atomic_float16_vector позволяет шейдерам выполнять атомарные операции добавления / минимизации / максимизации / обмена над 2-компонентными и 4-компонентными векторами формата float16. У NVIDIA аналогично уже есть расширение GL_NV_shader_atomic_fp16_vector OpenGL с аналогичными возможностями. Последняя документация Vulkan доступна по адресу vulkan.org.