|“WorkSpace” by Gamma-Ray Productions is licensed under CC BY-ND 2.0|
From the organization that stabilized the API wars in 2000 and empowered the extraordinary growth of the smartphone market comes a vision of the future. Khronos has grown to over 180 members in one of the most extraordinary non-profit organizations for 3D graphics, augmented and virtual reality, parallel programming, inferencing, and vision acceleration APIs ever. The organization’s proven multi-company governance and intellectual property framework has established the model for cooperation.
But, with 180 organizations, each having its own need, ambitions, and concerns, you get multiple opinions times 180. Yikes! Sorting through them all—and Khronos is famous for listening to, and considering all points of view, the organization decided a better approach was needed for helping developers deal with the fragmentation of both optional features in core specifications and the expanding number of Vulkan optional extensions, to know where and when Vulkan functionality is going to be reliably available in different markets.
|Vulkan’s continued diverse expansion and evolution complicates how developers can know where and when the functionality will be reliably available|
Khronos chose the announcement of Vulkan 1.3 to publicly deal with this issue and announced that the Vulkan Working Group is developing a public roadmap to provide guidance on when and where more advanced Vulkan functionality will be reliably available. The Vulkan Roadmap 2022 sets a milestone for mid-to-high-end hardware on mobile and PC platforms and defines features beyond Vulkan 1.3 that will be widely available starting this year. So there are two things to parse out of that. (a) Vulkan 1.3 is announced, and (b) Khronos is setting up an ongoing roadmap system to alert interested parties what is coming.
|Khronos plans significantly enhanced guidance for where and when Vulkan functionality will be supported to reduce fragmentation and streamline development of portable applications|
Let’s start with Vulkan 1.3. It incorporates multiple carefully selected extensions requested by the developer community into the new core version. That includes dynamic rendering to avoid dealing with subpasses, additional dynamic state, an improved synchronization API—a total of 23 extensions overall (see the Vulkan 1.3 and Roadmap blog post for details). A key difference between Vulkan 1.3 and previous core versions is that none of the added features are optional; every new feature added to Vulkan 1.3 is required to make that functionality consistently available in all implementations of this new API version—Vulkan 1.3, it’s not just a good idea, it’s the law!
As with previous core versions of Vulkan, Vulkan 1.3 is designed to be accelerated on OpenGL ES 3.1-class hardware, enabling devices in a wide range of markets to use the new core API. However (there’s always a but…), Vulkan devices in many key markets are more capable than the core specification requires, and until now the set of additional features supported through extensions in those devices has been left up to individual hardware vendors. The Vulkan Roadmap 2022 Milestone hopes to drive a consensus on the features supported in newer hardware developed for mid-to-high-end devices across smartphone, tablet, laptop, console, and desktop platforms, providing a common functionality baseline for those more capable devices.
Part of the new roadmap and defragmentation program is a new type of specification that Khronos is calling Vulkan Profiles that can be used to precisely specify, manage, and use sets of API capabilities. Profiles have multiple potential uses and will be used to communicate functionality requirements for roadmap milestones, baseline supported functionality on different markets and platforms, capabilities of hardware devices, and functionality needed by applications—with the overall aim of making it easier to ship portable applications.
Profile specifications don’t define new API calls. They specify a core version of Vulkan plus a set of required extensions, limits, features, and formats, and are machine-readable. A beta version of initial tooling will be released in mid-February as part of the Vulkan 1.3 SDK and will include a machine-readable file format for profile definitions and profile simulation support via the new VK_KHRONOS_LAYER_profiles layer. The SDK tooling will enable a developer to easily determine whether a device supports a given profile, to enable the features/extensions in a profile at application startup, and to simulate a profile on a higher capability device.
As the first available profile, Google has developed and shipped the Android Baseline 2021 Profile to advertise the set of features beyond core Vulkan 1.0 that are supported by a large majority of active devices in the Android ecosystem, including devices that are out of support and do not regularly receive driver updates.
Roadmaps and Profiles are a new approach for the Vulkan Working Group, and they are eager to hear feedback from the developer community on GitHub. Developers are also invited to register for a free Vulkanised Webinar on February 1, 2022 that will provide more detail on today’s announcement, and are welcome to join the Vulkan 1.3 Discord channel.