Vulkan 1.3.264 Released With Microsoft Layered Driver Extension
Earlier this year I wrote about Microsoft working on their first Vulkan extension and today it finally debuted within the Vulkan 1.3.264 spec update.
This new -- and first -- Microsoft Vulkan extension is VK_MSFT_layered_driver and is intended to help the common Vulkan loader better handle driver layering, such as Vulkan mapped atop Direct3D 12 hardware drivers on Windows.
As explained in the doc for the VK_MSFT_layered_driver extension:
The other new extension with today's Vulkan spec update is VK_EXT_frame_boundary and is a new extension to help tools/debuggers to group queue submissions per-frame in non-trivial scenarios. This extension was worked on by engineers from Google, Imagination, Arm, NVIDIA, and Huawei.
More details on today's Vulkan 1.3.264 spec update via GitHub.
This new -- and first -- Microsoft Vulkan extension is VK_MSFT_layered_driver and is intended to help the common Vulkan loader better handle driver layering, such as Vulkan mapped atop Direct3D 12 hardware drivers on Windows.
As explained in the doc for the VK_MSFT_layered_driver extension:
"The Vulkan loader is able to sort physical devices according to platform-specific criteria. For example, on Windows, the loader uses LUIDs to put physical devices in the same order as DXGI adapters. However, it is possible to have multiple Vulkan drivers that provide support for the same physical device, for example, where one is a “native” vendor-provided implementation and another is a “layered” implementation on top of a different API. Examples of layered implementations would include VulkanOn12 (aka Dozen), layered on D3D12, and MoltenVK, layered on Metal.
On a system where a physical device has two possible drivers, the sort order between them is currently unspecified. An ideal sort order should place any native/un-layered drivers sorted-before any layered drivers, as it should be expected that native drivers will provide more functionality and higher performance, since layering inherently adds overhead. But the loader has no way of knowing which driver to prefer.
An additional problem that is not addressed by this specification is the case where you have multiple “native” drivers for a single physical device. In that case, the sort order remains unspecified, as a correct ordering between drivers is non-obvious."
The other new extension with today's Vulkan spec update is VK_EXT_frame_boundary and is a new extension to help tools/debuggers to group queue submissions per-frame in non-trivial scenarios. This extension was worked on by engineers from Google, Imagination, Arm, NVIDIA, and Huawei.
More details on today's Vulkan 1.3.264 spec update via GitHub.
4 Comments