Vulkan 1.3.278 Released With Two New Extensions - One Will Help Wine / Steam Play
Vulkan 1.3.278 was published this morning and in addition to the usual documentation corrections/clarifications, there are also two new Vulkan extensions in tow.
The first new Vulkan extension with v1.3.278 is VK_EXT_map_memory_placed. The VK_EXT_map_memory_placed extension worked on by Collabora, AMD, NVIDIA, Valve, and CodeWeavers should help for Linux gaming purposes with Wine / Valve's Steam Play (Proton). VK_EXT_map_memory_placed allows for requesting that a memory map be placed at a particular virtual address. Having a VkDeviceMemory object at a particular client's address space has been in the works for the better part of the past year. This was requested by Wine developers to better support 32-bit Windows applications while using 64-bit Vulkan drivers. If a 64-bit Vulkan driver returns a pointer from vkMapMemory that the 32-bit API consumer can't deal with due to being out of the 32-bit range, there are problems. But by leveraging VK_EXT_map_memory_placed to ensure memory objects are in an acceptable range, the 32-bit Windows software on Wine can be dealt with so that the memory objects won't be outside the 32-bit range.
This VK_EXT_map_memory_placed extension was also brought up in the context of MoltenVK for Vulkan API support on Apple's Metal for iOS/macOS devices that this extension will be useful there too, including if getting DXVK support going.
The other new extension christened today is VK_NV_shader_atomic_float16_vector. This NVIDIA vendor extension with VK_NV_shader_atomic_float16_vector allows shaders to perform atomic add / min / max / exchange operations on 2-component and 4-component vectors of float16 format. NVIDIA similarly already has the GL_NV_shader_atomic_fp16_vector OpenGL extension of similar capability.
The latest Vulkan documentation is available from Vulkan.org.
The first new Vulkan extension with v1.3.278 is VK_EXT_map_memory_placed. The VK_EXT_map_memory_placed extension worked on by Collabora, AMD, NVIDIA, Valve, and CodeWeavers should help for Linux gaming purposes with Wine / Valve's Steam Play (Proton). VK_EXT_map_memory_placed allows for requesting that a memory map be placed at a particular virtual address. Having a VkDeviceMemory object at a particular client's address space has been in the works for the better part of the past year. This was requested by Wine developers to better support 32-bit Windows applications while using 64-bit Vulkan drivers. If a 64-bit Vulkan driver returns a pointer from vkMapMemory that the 32-bit API consumer can't deal with due to being out of the 32-bit range, there are problems. But by leveraging VK_EXT_map_memory_placed to ensure memory objects are in an acceptable range, the 32-bit Windows software on Wine can be dealt with so that the memory objects won't be outside the 32-bit range.
This VK_EXT_map_memory_placed extension was also brought up in the context of MoltenVK for Vulkan API support on Apple's Metal for iOS/macOS devices that this extension will be useful there too, including if getting DXVK support going.
The other new extension christened today is VK_NV_shader_atomic_float16_vector. This NVIDIA vendor extension with VK_NV_shader_atomic_float16_vector allows shaders to perform atomic add / min / max / exchange operations on 2-component and 4-component vectors of float16 format. NVIDIA similarly already has the GL_NV_shader_atomic_fp16_vector OpenGL extension of similar capability.
The latest Vulkan documentation is available from Vulkan.org.
Add A Comment