The Vulkan 1.4 graphic standard has been published.

After nearly three years of work, the Khronos consortium, which is responsible for developing graphics standards, has published the Vulkan 1.4 specification, which defines the API for accessing the graphics and computational capabilities of GPUs. The new specification incorporates previously optional extensions and provides a range of new features while increasing the minimum hardware requirements. The Vulkan SDK toolkit is planned to be released in January 2025.

Products supporting Vulkan 1.4 are being prepared for release by AMD, Arm, Imagination, Intel, NVIDIA, Qualcomm, and Samsung. Open drivers for AMD GPUs (radv), Apple M1/M2 (honeykrisp), Intel (anv), NVIDIA (nvk), and Qualcomm (tu), developed by the Mesa project, have already passed all compatibility tests with Vulkan 1.4 from the CTS (Khronos Conformance Test Suite) and are included in the list of certified drivers. The list also includes drivers from Samsung and Qualcomm for the Android platform, as well as drivers for PowerVR D-Series DXT* GPUs from Imagination Technologies and proprietary NVIDIA drivers.

Key innovations:

  • Support has been added for the "Streaming Transfers" mechanism, designed to enable the streaming of large volumes of data between the main system (host) and the graphics device without interrupting rendering or slowing down its performance. This mechanism is implemented via the new extension VK_EXT_host_image_copy, support for which is optional.
  • The following performance-enhancing features have been made mandatory:
    • Push Descriptors — the ability to write descriptor updates directly into the command buffer, instead of creating separate descriptor sets and binding them to the command buffer.
    • VK_KHR_dynamic_rendering_local_read — allows reading from nested attachments and resources written by previous fragment shaders within the context of dynamic render passes.
    • VK_EXT_scalar_block_layout — allows the use of a C-like structure for SPIR-V blocks, where non-scalar types can be aligned based on the size of their components.
  • Included are the extensions VK_KHR_maintenance5 and VK_KHR_maintenance6, providing auxiliary commands and structures to simplify resource and shader management.
  • Guaranteed support for 8K rendering (7680 x 4320 pixels) with the use of up to 8 independent rendering buffers.
  • Included extensions:
    • VK_KHR_global_priority
    • VK_KHR_index_type_uint8
    • VK_KHR_line_rasterization
    • VK_KHR_load_store_op_none
    • VK_KHR_map_memory2
    • VK_KHR_push_descriptor
    • VK_KHR_shader_expect_assume
    • VK_KHR_shader_float_controls2
    • VK_KHR_shader_subgroup_rotate
    • VK_KHR_vertex_attribute_divisor
    • VK_EXT_pipeline_protected_access
    • VK_EXT_pipeline_robustness
  • Many features that were previously optional have been made mandatory.
  • A large number of new commands and structures have been added.

The Vulkan API is notable for its radical simplification of drivers, offloading GPU command generation to the application side, enabling the connection of debugging layers, unifying the API for different platforms, and applying precompiled intermediate code for execution on the GPU.

To ensure high performance and predictability, Vulkan provides applications with means for direct control of GPU operations and built-in support for multi-threaded GPU command processing, which minimizes the overhead imposed by drivers, while the capabilities implemented on the driver side are significantly simplified and become more predictable. For instance, operations like memory management and error handling that are implemented in OpenGL on the driver side are moved to the application level in Vulkan.

Vulkan covers all available platforms and provides a unified API for desktop, mobile systems, and the Web, allowing the use of a single common API for various graphics processors and application areas. Thanks to Vulkan's layered architecture, which implies the creation of tools that work with any GPU, hardware manufacturers can use standard tools for code validation, debugging, and profiling during development.

To create shaders, a portable intermediate representation SPIR-V is offered, based on LLVM and utilizing common foundational technologies with OpenCL. The HLSL shading language used in DirectX can also be used with Vulkan by translating it to SPIR-V. To manage devices and screens in Vulkan, a WSI (Window System Integration) interface is proposed, which resolves roughly the same tasks as EGL in OpenGL ES. WSI support is available out of the box in Wayland—any applications using Vulkan can run in an unmodified environment. servers Wayland. Support for WSI is also provided for Android, X11 (with DRI3), Windows, Tizen, macOS, and iOS.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster