Vulkan SDK 1.3.296.0 Release Notes
Version 1.3.296.0 for macOS
October 8, 2024
Deprecation Notice
We have moved away from using a .DMG (mountable device volume) to archive the SDK installer on macOS. Instead a notarized .zip file is available containing the installer executable. This is due to some developer requests, and will streamline automation of downloading, extracting, and running the installer executable in a scripted fashion.
Overview of new features in SDK 1.3.296.0
- Be sure and see the notice about an issue with the SDK Maintenance Tool on macOS Sequoia at the end of this document.
- Slang (https://github.com/shader-slang/slang), an alternative shader language and compiler, has been included. It is currently in Beta status. See the slang user guide for details on usage.
- Synchronization validation for VK_KHR_timeline_semaphore has been implemented and included in this SDK!
- 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_EXT_depth_clamp_control
- VK_EXT_device_generated_commands
- VK_KHR_compute_shader_derivatives
- VK_KHR_pipeline_binary
- VK_NV_command_buffer_inheritance
- VK_AMD_anti_lag
- 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.
- 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.
- Updated to MoltenVK version 1.2.11 with the following highlights:
- Support dynamically allocating descriptors when pool is exhausted.
- Deprecate MVKConfiguration::prealloateDescriptors and MVK_CONFIG_PREALLOCATE_DESCRIPTORS environment variables.
- vkAllocateDescriptorSets(): Per Vulkan spec, if any descriptor set allocation fails, populate all descriptor set pointers with VK_NULL_HANDLE. In addition, return VK_ERROR_FRAGMENTED_POOL if failure was due to pool fragmentation.
- vkUpdateDescriptorSets(): Per Vulkan spec, allow write or copy beyond the end of a descriptor binding count, including inline uniform block descriptors.
- Update VkFormat capabilities based on latest Metal docs.
- Ensure all MoltenVK config info set by VK_EXT_layer_settins is used.
- Support storage images in Metal argumet buffers on iOS.
- Fix occasional GPU crash when a smaller descriptor set replaces a larger one.
- Fix race condition when VkImage destroyed while used by a descriptor.
- Many other bug fixes and Vulkan conformance updates.
- see the MoltenVK release notes for additional and more detailed update information
Platform Support Matrix
Feature | Windows-x64/x86 | Windows-ARM | Linux tarball | Ubuntu Packages | macOS SDK |
---|---|---|---|---|---|
Tools | |||||
Vulkan Configurator | X | X | X | X | X |
Vulkaninfo | X | X | X | X | X |
VIA (Vulkan Installation Analyzer) | X | X | X | X | X |
Vulkan Profiles API Library | X | X | X | X | X |
VOLK (a meta-loader for Vulkan) | X | X | X | X | X |
AMD Memory Allocator | X | X | X | X | X |
Validation Layers | |||||
Validation | X | X | X | X | X |
Best Practices | X | X | X | X | X |
GPU Assisted Validation | X | X | X | ||
Debug Printf | X | X | X | ||
Synchronization Validation | X | X | X | X | X |
Utility Layers | |||||
Crash Diagnostic Layer | X | X | X | X | |
Profiles Layer | X | X | X | X | |
API Dump | X | X | X | X | |
Monitor | X | X | X | X | |
Screenshot | X | X | X | X | |
GFXReconstruct | X | X | X | ||
Extension Layers | |||||
Synchronization 2 | X | X | X | X | X |
Shader Object | X | X | |||
Shader Tools | |||||
glslangValidator | X | X | X | X | X |
SPIR-V Optimizer | X | X | X | X | X |
SPIR-V Disassembler, Assembler, Validator | X | X | X | X | X |
SPIR-V Remapper | X | X | X | X | X |
SPIR-V Control Flow Visualization | X | X | X | X | X |
SPIR-V Cross-Compilation and Reflection | X | X | X | X | X |
shaderc | X | X | X | X | X |
DXC (DirectX Shader Compiler) | X | X | X | X | |
SPIRV-reflect | X | X | X | X | X |
slang | X | 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 4)
- GLSL Specification (Version 4.6)
- GitHub Repo: KhronosGroup/glslang, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/SPIRV-Cross Version Tag: vulkan-sdk-1.3.296.0
- Github Repo: SPIRV-Reflect Version Tag: vulkan-sdk-1.3.296.0
- Github Repo: shader-slang Version Tag: v2024.13
- GitHub Repo: KhronosGroup/SPIRV-Tools, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/Vulkan-Headers, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/Vulkan-Loader, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/Vulkan-Tools, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/Vulkan-ValidationLayers, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/Vulkan-Profiles, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/Vulkan-ExtensionLayer, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: KhronosGroup/Vulkan-Utility-Libraries, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: LunarG/VulkanTools, Version Tag: vulkan-sdk-1.3.296.6
- GitHub Repo: CrashDiagnosticLayer, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: volk, Version Tag: vulkan-sdk-1.3.296.0
- GitHub Repo: AMD Memory Allocator tag: v3.1.0
- GitHub Repo: microsoft/DirectXShaderCompiler commit: d9a5e97d04ac4284edd3c29b0ad2a6e860a6e1bb
- GitHub Repo: google/shaderc commit: 6d803fea480e6a71f795e55d63c8c985e3529b3d
- GitHub Repo: SaschaWillems/VulkanCapsViewer tag: 3.42
- GitHub Repo: sdl, Version Tag: release-2.30.7
- GitHub Repo: glm, Version Tag: 1.0.1
- GitHub Repo: KhronosGroup/MoltenVK, Version Tag: v1.2.11
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.
Developer Notes
The new installation app optionally (but by default) runs the script install_vulkan.py
with administrative privileges. This copies the Vulkan Loader, MoltenVK, and command line utilities into system folders (/usr/local
) for easier access during development.
Known Issues
- On macOS Sequoia, the MaintenanceTool will not run due to security changes in macOS 15.0. To unintall the system files, run "sudo ./uninstall.sh" from the SDK folder. To remove the SDK, delete the SDK folder itself. To make changes to the installed packages, remove the SDK and re-run the installer to choose the new optional packages you want.
- When using Vulkan Profiles requiring Profiles with the Vulkan Profiles layer, no warning is emitted when trying to override a device capability to a value that is not supported by the device.
- Vulkan Configurator known issues are documented in the Vulkan Configurator Change Log
- Both XCode AND the XCode command line tools are required to run the installer due to it's dependency on Python3 being present on your system.