After two years of work, Khronos announced the release of the new version of the Vulkan 1.3 specification. The new specification incorporates corrections and extensions accumulated over two years.
Besides it a plan has been submitted to implement support for the new specification and additional extensions in graphics cards and device drivers. Intel, AMD, ARM and NVIDIA are preparing products compatible with Vulkan 1.3.
For example, AMD has announced that support for Vulkan 1.3 will be available soon on the AMD Radeon RX Vega series of graphics cards, as well as all cards based on the AMD RDNA architecture. NVIDIA is preparing to release Vulkan 1.3 compatible drivers for Linux and Windows, and ARM will add Vulkan 1.3 support to Mali GPUs.
For those unaware of Volcano, they should know that this is an API that stands out for its cardinal simplification of controllers, the removal of application-side GPU command generation, the ability to plug in debugging layers, the unification of APIs for various platforms, and the use of precompiled intermediate code rendering for GPU-side execution.
To ensure high performance and predictability, Vulkan provides applications with direct control over GPU operations and built-in support for GPU multithreading., which minimizes controller overhead and makes controller-side capabilities much simpler and more predictable. For example, operations like memory management and error handling implemented in OpenGL on the driver side are moved to the application layer in Vulkan.
Vulkan spans all available platforms and provides a single API for desktop, mobile, and the web, allowing a common API to be used across multiple GPUs and applications. With Vulkan's multi-tier architecture creating tools that work with any GPU, OEMs can use generic tools for code review, debugging, and profiling during development.
Main new features of Vulkan 1.3
In this new version of Vulkan 1.3 that is presented, it is highlighted thate SPIR-V 1.6 specification was updated to define an intermediate representation of shaders that is universal to all platforms and can be used for both graphics and parallel computing. SPIR-V involves the separation of a separate shader compilation phase into an intermediate representation, allowing interfaces to be created for various high-level languages. Based on several high-level implementations, a single intermediate code is generated separately that can be used by OpenGL, Vulkan, and OpenCL drivers without using the built-in shader compiler.
Another change that stands out is that se proposes the concept of compatibility profiles. Google is the first to develop a basic profile for the Android platform which will make it easier to determine the level of support for advanced Vulkan features on a device that goes beyond the Vulkan 1.0 specification. For most devices, profile support can be provided without installing OTA updates.
The implemented support for simplified render passes (Streamlining Render Passes , VK_KHR_dynamic_rendering) that allow you to start rendering without creating render passes and framebuffer objects.
In addition, new extensions have been added to make it easier to manage the compilation of a graph pipeline:
- VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 – Adds additional dynamic states to reduce the number of compiled and attached state objects.
- VK_EXT_pipeline_creation_cache_control : Provides extended control over when and how to build pipelines.
- VK_EXT_pipeline_creation_feedback : Provides information about compiled pipelines to facilitate profiling and debugging.
On the other hand, several features that have been moved from optional to mandatory are also highlighted. For example, it is now mandatory to implement buffer references (VK_KHR_buffer_device_address) and the Vulkan memory model, which defines how parallel threads can access shared data and synchronization operations.
Besides it detailed subgroup control is provided (VK_EXT_subgroup_size_control) where providers can support multiple subgroup sizes and developers can choose any size they want.
An extension was provided VK_KHR_shader_integer_dot_product which can be used to optimize the performance of machine learning frameworks through hardware-accelerated point product operations.
Finally it should be noted that the Vulkan 1.3 specification requirements are designed for OpenGL ES 3.1 class graphics hardware, which will ensure support for the new graphics API on all GPUs that support Vulkan 1.2.
The Vulkan SDK toolkit is scheduled to be released in mid-February. In addition to the core specification, additional extensions for mid-range and high-end desktop and mobile devices are planned to be supported as part of the Vulkan Milestone Edition.
Finally, if you are interested in being able to know more about it, you can consult the details in the following link