Vulkan SC 1.0.15 Released: SPIR-V Validation and New NVIDIA Drivers for Desktop Systems Available (2024)

by Mark Bellamy, Arm Limited; Daniel Koch, NVIDIA vulkan, vulkansc

On June 21, 2024 the Vulkan® SC™ working group at the Khronos® Group released the Vulkan SC 1.0.15 specification, the latest maintenance update to the “Vulkan Safety Critical” open standard API, which enables GPU-accelerated graphics and computation to be deployed in systems that are certified to meet industry functional safety standards.

This is an update on the latest Vulkan SC developments, including significant new functionality in the Vulkan SC validation layers and broadened availability of NVIDIA Vulkan SC drivers.

Vulkan SC 1.0.15 Maintenance Update

Vulkan SC leverages the mainstream Vulkan specification, adapting it for safety critical systems. The Vulkan SC 1.0.15 maintenance update moves the referenced Vulkan version to 1.2.286, incorporating the latest improvements and fixes from the Vulkan specification sources into the Vulkan SC specification. This maintenance update also ratifies a significant number of previously supported Vulkan SC extensions, providing additional patent licensing protection for Vulkan Adopters implementing that functionality, and includes updating to the latest KHR version of a number of already supported EXT extensions.

A significant number of extensions that were previously ratified in the Vulkan specification are now also ratified in Vulkan SC, including:

  • VK_EXT_depth_clip_enable, VK_EXT_depth_range_unrestricted
  • VK_EXT_discard_rectangles, VK_EXT_hdr_metadata
  • VK_EXT_queue_family_foreign, VK_EXT_pci_bus_info
  • VK_EXT_ycbcr_image_arrays, VK_EXT_custom_border_color
  • VK_EXT_shader_stencil_export, VK_EXT_external_memory_host
  • VK_EXT_external_memory_dma_buf, VK_EXT_sample_locations
  • VK_EXT_robustness2, VK_EXT_color_write_enable
  • VK_EXT_shader_atomic_float

This release includes the following ratified Vulkan SC EXT extensions that were ratified in the Vulkan 1.3 Core Specification:

  • VK_EXT_4444_formats, VK_EXT_extended_dynamic_state
  • VK_EXT_extended_dynamic_state2, VK_EXT_image_robustness
  • VK_EXT_shader_demote_to_helper_invocation
  • VK_EXT_subgroup_size_control, VK_EXT_texel_buffer_alignment
  • VK_EXT_texture_compression_astc_hdr
  • VK_EXT_ycbcr_2plane_444_format.

The Working Group also reviewed the Vulkan SC ecosystem, and some EXT extensions that have not been shipped by any implementation have been removed from the specification and replaced with the corresponding KHR extension to minimize API surface area, including:

  • VK_KHR_calibrated_timestamps
  • VK_KHR_global_priority
  • VK_KHR_vertex_attribute_divisor.

The Working Group has also enabled the following extensions, but did not remove the EXT versions as they are used in shipping implementations:

  • VK_KHR_index_type_uint8
  • VK_KHR_line_rasterization

Vulkan SC Validation Layer - SPIR-V Support

Along with the Vulkan SC 1.0.15 maintenance update, there has been a significant update to the open source Vulkan SC Validation Layers—including validation of SPIR-V-related Valid Usage statements.

Vulkan SC removed shader modules from the API in favor of using offline compiled pipeline caches supplied at runtime in a Vulkan SC-specific pipeline cache format. This means that the SPIR-V code for shaders is not required to be passed to the implementation, preventing the Validation Layers from intercepting and validating SPIR-V usage. However, the Vulkan SC pipeline cache format does include a VkPipelineCacheStageValidationIndexEntry that allows SPIR-V data to be embedded into the pipeline cache, enabling the Validation Layer to access the SPIR-V optionally included in the pipeline cache by the implementation’s Pipeline Cache Compiler (PCC).

The latest version of the Validation Layers has been enhanced to intercept any SPIR-V included in pipeline caches to enable validation of the SPIR-V data and API Valid Usage statements that are dependent on the SPIR-V code being available. Developers should check their GPU vendor’s documentation for how to include pipeline debug information in the Vulkan SC pipeline cache.

For more information on the development of the Validation Layer and other Vulkan SC ecosystem tools, we also recommend the recent blog from RasterGrid on the development and functionality of these tools: Behind the scenes: the Vulkan SC ecosystem.

NVIDIA Broadens Vulkan SC Driver Availability

NVIDIA is broadening the availability of Vulkan SC drivers for its GPUs. The latest NVIDIA General Release drivers starting with the R560 family, as well as NVIDIA’s Vulkan Beta drivers, now support Vulkan SC 1.0 on NVIDIA GeForce RTX and NVIDIA RTX products on both x86_64-based Windows 10/11 and Linux platforms.

This means that NVIDIA now provides Vulkan SC 1.0 support on the NVIDIA GeForce RTX, NVIDIA RTX, NVIDIA DRIVE, and NVIDIA Jetson platforms. The Vulkan SC drivers on the NVIDIA GeForce RTX, NVIDIA RTX, and NVIDIA Jetson platforms are primarily intended for development purposes—or if a developer prefers an API with more deterministic runtime behavior—with the NVIDIA DRIVE platform being used for safety-certified deployments.

Vulkan SC on NVIDIA GeForce RTX and NVIDIA RTX supports display presentation using the Direct-to-Display (VK_KHR_display) functionality. The VK_NV_acquire_winrt_display extension has been added in Vulkan SC 1.0.15 specification to support these drivers. Vulkan SC on NVIDIA DRIVE and NVIDIA Jetson supports presentation with OpenWFD via NvSci interop (VK_NV_external_memory_sci_buf and VK_NV_external_sci_sync2).

Unlike mainstream Vulkan drivers, the Vulkan SC driver does not bundle a loader, and so the NVIDIA Vulkan SC SDK must be downloaded and installed separately. The NVIDIA Vulkan SC SDK includes prebuilt open source samples, validation layers, and the json generation layer. Download links and additional details on the NVIDIA GeForce RTX and NVIDIA RTX Vulkan SC SDK can be found at: https://developer.nvidia.com/vulkan-driver#VulkanSC.

More Information

As you can see, the Vulkan SC Working Group has been busy with new developments to evolve the Vulkan SC ecosystem since the last update in October 2023.

If you have Vulkan SC questions or feedback, you are warmly encouraged to contact the Vulkan SC Working Group using Vulkan SC GitHub Discussions - we welcome your thoughts and input!

For additional information on Vulkan SC visit: khronos.org/vulkansc. If you would like to be directly involved in the development of the Vulkan SC standard, please consider joining Khronos and participating in the Vulkan SC Working Group!

Vulkan SC 1.0.15 Released: SPIR-V Validation and New NVIDIA Drivers for Desktop Systems Available (2024)
Top Articles
Latest Posts
Article information

Author: Terrell Hackett

Last Updated:

Views: 6096

Rating: 4.1 / 5 (72 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Terrell Hackett

Birthday: 1992-03-17

Address: Suite 453 459 Gibson Squares, East Adriane, AK 71925-5692

Phone: +21811810803470

Job: Chief Representative

Hobby: Board games, Rock climbing, Ghost hunting, Origami, Kabaddi, Mushroom hunting, Gaming

Introduction: My name is Terrell Hackett, I am a gleaming, brainy, courageous, helpful, healthy, cooperative, graceful person who loves writing and wants to share my knowledge and understanding with you.