Skip to main content

LunarG Blog: The Vulkan Portability Enumeration Extension

Vulkan Portability aims to counter platform fragmentation by encouraging layered implementations of Vulkan functionality over Metal, DX12, and other APIs. Vulkan Portability enables Vulkan applications to be reliably deployed across diverse platforms.

Khronos released a provisional version of Vulkan Portability Extension 1.0 in September 2020. The VK_KHR_portability_subset extension allows a non-conformant Vulkan implementation to be built on top of another non-Vulkan graphics API and identifies the difference between that implementation and a fully-conformant native Vulkan implementation. The extension is detailed in the Vulkan Specification.

For already released applications that are expecting to see only fully Vulkan conformant devices, a backward-compatibility issue exists. To solve the backward-compatibility issue, Khronos has released the new Vulkan Loader extension, VK_KHR_portability_enumeration. The purpose of this extension is to enable or disable enumeration of portability (non-conformant) implementations.