Vulkan SDK 1.3.275.0 Release Notes
Version 1.3.275.0 for Windows
January 17, 2024
This SDK supports Vulkan API revision 1.3.275.
Overview of new features in SDK 1.3.275.0
VK_EXT_layer_settings was created to enable configuring any layer programmatically, from the Vulkan application code. To provide a consistent Vulkan developer experience with Vulkan layers, we provide an implementation of this extension with the Vulkan::LayerSettings C++ library (https://github.com/KhronosGroup/Vulkan-Utility-Libraries/blob/main/README.md) that is used by the Vulkan Validation layer, the Vulkan Extension layers, the Vulkan Profiles layer and the LunarG Utility layers. This behavior consistency is ensure across the three different approach to configure layers: Using Vulkan Configurator, using environment variables and now programmatically, using a generic Vulkan extension for all layers.
- Note: Your Vulkan Runtime (loader) must be revision 1.3.275.0 to expose this instance extension. In addition the layer manifest json files (found in the bin directory) need to be updated with the following (before the device_extensions):
"instance_extensions": [ { "name": "VK_EXT_layer_settings", "spec_version": "2" } ],
By default, Synchronization Validation now also reports issues between or outside of recorded command buffers. Supported commands include Queue submit, swapchain acquire and present operations, and additional synchronization operations including queue, device, and fence wait operations. (These checks were previously disabled by default.)
Debug Printf no longer implicitly includes stage specific information (such as gl_InvocationId) in its output. This allows it to be more easily used from shader modules that define entry points for multiple pipeline stages. You may still print these values by explicitly including them in your debugPrintfEXT() statements. See the debug printf documentation for more information.
Added to the Vulkan Profiles API library the capability to check the support of a Vulkan Profile that supports multiple variants, a profile that may be satisfied by multiple sets of Vulkan capabilities.
Added to the Vulkan Profiles API library ability to create VkDevice and VkInstance instances using specific capabilities blocks of profiles.
Added the support of a Vulkan Profile requiring other profiles.
Changes to profiles included in the SDK:
- Replaced VP_KHR_roadmap_2022.json by VP_KHR_roadmap.json that will store future Roadmap profiles
- Replaced VP_LUNARG_desktop_baseline_2022 and VP_LUNARG_desktop_portability_2022 for devices that actually represent what's available in the ecosystem in 2024.
- New profiles:
- Config\VK_LAYER_KHRONOS_profiles\VP_ANDROID_15_minimums.json
- Config\VK_LAYER_KHRONOS_profiles\VP_KHR_roadmap.json
- Config\VK_LAYER_KHRONOS_profiles\VP_LUNARG_desktop_baseline_2024.json
- Config\VK_LAYER_KHRONOS_profiles\VP_LUNARG_minimum_requirements.json
- Removed profiles:
- Config\VK_LAYER_KHRONOS_profiles\VP_KHR_roadmap_2022.json
- Config\VK_LAYER_KHRONOS_profiles\VP_LUNARG_desktop_baseline_2022.json
- Config\VK_LAYER_KHRONOS_profiles\VP_LUNARG_desktop_portability_2022.json
The Vulkan Configurator (vkconfig) has been updated to improve quality and stability. See the fixes included in this SDK here. See the Vulkan Configurator documentation for more information.
The Vulkan headers now include the following new extensions. Note that extensions are optional and may not be implemented by the underlying driver/ICD. Applications can now query for the presence of these new features.
- VK_KHR_maintenance6
- Video Encode Extensions
- VK_KHR_video_encode_queue
- VK_KHR_video_encode_h264
- VK_KHR_video_encode_h265
- VK_KHR_video_maintenance1
- VK_NV_per_stage_descriptor_set
- VK_KHR_calibrated_timestamps
- VK_KHR_vertex_attribute_divisor
- VK_EXT_layer_settings
- VK_ARM_render_pass_striped
- VK_IMG_relaxed_line_rasterization
- VK_ARM_scheduling_controls
- VK_NV_cuda_kernel_launch
Improved validation coverage. VUID validation coverage documentation (validation_error_database.csv and validation_error_database.html) has been updated to represent the validation layer VUID coverage status.
The glslang legacy libraries named HLSL and OGLCompiler have been removed. To avoid future disruptions, please use cmake's find_package mechanism rather than hard coding library dependencies. Only the headers that are part of glslang's public interface are included in the install target.
Added CMake files in Lib\cmake\ and Lib\cmake\glslang\ to support building applications with CMake and the glslang shipped with the SDK.
Drivers: It is recommended you update Vulkan-capable hardware drivers to the latest recommended version from the hardware vendor. A list of Known Issues appears at the end of this document with more information.
Vulkan Loader: The Windows SDK does not update the Vulkan Loader on your system. Instead you should be getting the Vulkan Loader from your graphics hardware provider driver package. There is an optional Vulkan Runtime package available at vulkan.lunarg.com should you wish to force updating your system with a more recent Vulkan Loader.
Platform Support Matrix
Feature | Windows | Linux tarball | Ubuntu Packages | macOS SDK |
---|---|---|---|---|
Tools | ||||
Vulkan Configurator | X | X | X | X |
Vulkaninfo | X | X | X | X |
VIA (Vulkan Installation Analyzer) | X | X | X | X |
Vulkan Profiles API Library | X | X | X | X |
VOLK (a meta-loader for Vulkan) | X | X | X | X |
AMD Memory Allocator | X | X | X | X |
Validation Layers | ||||
Validation | X | X | X | X |
Best Practices | X | X | X | X |
GPU Assisted Validation | X | X | X | |
Debug Printf | X | X | X | |
Synchronization Validation | X | X | X | X |
Utility Layers | ||||
Profiles Layer | X | X | X | X |
API Dump | X | X | X | X |
Monitor | X | X | X | |
Screenshot | X | X | X | |
GFXReconstruct | X | X | X | |
Extension Layers | ||||
Synchronization 2 | X | X | X | X |
Shader Object | X | |||
Shader Tools | ||||
glslangValidator | X | X | X | X |
SPIR-V Optimizer | X | X | X | X |
SPIR-V Disassembler, Assembler, Validator | X | X | X | X |
SPIR-V Remapper | X | X | X | X |
SPIR-V Control Flow Visualization | X | X | X | X |
SPIR-V Cross-Compilation and Reflection | X | X | X | X |
shaderc | X | X | X | X |
DXC (DirectX Shader Compiler) | X | X | X | X |
SPIRV-reflect | X | X | X | X |
SDK Components
This version of the SDK is based on the following specifications, source code repositories, and commits:
- Vulkan Specification
- SPIR-V Specification (Version 1.6, Revision 3)
- GLSL Specification (Version 4.6)
- GitHub Repo: KhronosGroup/glslang, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/SPIRV-Cross Version Tag: vulkan-sdk-1.3.275.0
- Github Repo: SPIRV-Reflect Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/SPIRV-Tools, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/Vulkan-Headers, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/Vulkan-Loader, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/Vulkan-Tools, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/Vulkan-ValidationLayers, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/Vulkan-Profiles, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/Vulkan-ExtensionLayer, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: KhronosGroup/Vulkan-Utility-Libraries, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: LunarG/gfxreconstruct, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: LunarG/VulkanTools, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: volk, Version Tag: vulkan-sdk-1.3.275.0
- GitHub Repo: AMD Memory Allocator commit: 5e43c795daf43dd09398d8307212e85025215052
- GitHub Repo: microsoft/DirectXShaderCompiler commit: 7d2f9c74d53dcbb9de4e148b68c99e5986875be6
- GitHub Repo: google/shaderc commit: 93b465f4f2eb5ef92004231b3c099944cd5cbf5b
- GitHub Repo: SaschaWillems/VulkanCapsViewer tag: 3.32
- GitHub Repo: sdl, Version Tag: release-2.28.5
- GitHub Repo: glm, Version Tag: 0.9.9.8
LunarG would like to thank all of the many contributors to all of the above repositories and the contributions they are making to the Vulkan Ecosystem.
Submitting Issues
If while using the tools and layers included in the SDK you find a defect in that tool or layer, the most expedient way to get a resolution is to submit to its corresponding repository. For example, if you believe you have found a defect in the Validation Layers, submit an issue at the repository for Validation Layers. The only exception to this is for the shader tool chain (glslang, SPIRV-Cross, SPIRV-Tools, shaderc). For these repositories you can submit issues against the SDK at vulkan.lunarg.com.
Known Issues
New Layer Manifest File version: The new version of the Layer Manifest File may cause an older Vulkan Loader to generate a warning. This warning is safe to ignore. It appears like the following with a corresponding SDK path and layer name:
WARNING: [Loader Message] Code 0 : loaderAddLayerProperties: [path\to\sdk]VkLayer_[layer_name].json invalid layer manifest file version 1.2.0. May cause errors.
Vulkan Configurator known issues are documented in the Vulkan Configurator Change Log
Possible Conflict between Vulkan Profiles Layer and Vulkan Hardware Capability Viewer: If the the Vulkan Profiles layer is active (perhaps via the Vulkan Configurator) and the Vulkan Hardware Capability Viewer is started, you may get the message "Feature modifying tool detected, upload disabled". This can occur on installation of a new SDK if autolaunch of Vulkan Configurator and and the capabilities viewer is selected, when the last selected configuration includes the profile layer.