Vulkan SDK 1.3.283.0 Release Notes
Version 1.3.283.0 for macOS
May 14, 2024
This release adds symbolic links to the /include and /bin folders in the /iOS install directory and a version of setup-env.sh for use with iOS, also in the /iOS folder. The shader toolchain in the linked /bin folder is compatible with iOS as is the /headers folder. The setup-env.sh script (run source setup-env.sh from the /iOS folder) sets up the VULKAN_SDK environment variable to point to the iOS libraries and frameworks. Users of cmake version 3.29.0 or later on macOS will find that cmake should be able to find the appropriate version of the vulkan header framework for iOS development and using the Xcode generator with cmake will produce usable iOS projects. The Vulkan Samples SDK has also recently been updated with compatability with this SDK.
Deprecation Notice
Future versions of the Apple Vulkan SDK will no longer be distributed as a .DMG (mountable device volume). Instead a notarized .zip file containing the installer executable will be posted. This is due to some developer requests, and will streamline automation of downloading, extracting, and running the installer executable in a scripted fashion.
Removal Notice (Repeated from last SDK release)
The /MoltenVK folder in the root of the SDK has been removed. This folder contained duplicate headers that are found in /macOS/include. The MoltenVK specific internal headers have been moved to /macOS/include as well so that all required headers for Vulkan development on Apple platforms are in one location. In additon, the libraries and .xcFramework in /MoltenVK has been moved to macOS/lib, so that again, all libraries needed for macOS development are in one location.
In addtion, iOS support is moving out of Beta. Part of this transition is the removal of all .dylib's for iOS as they conflict with Apple's rules for App Store distribution. The loader, MoltenVK, and layers are now provided as dynamic frameworks for this reason. Shader toolchain libraries are now static only as well. Also as part of this restructuring tvOS is no longer a separate component, but is still supported in the xcFrameworks that are a part of the base macOS SDK installation.
Overview of new features in SDK 1.3.283.0
- 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.9 with the following highlights:
- Added extensions:
- VK_EXT_host_image_copy
- Add MVK_CONFIG_SHADER_DUMP_DIR configuration parameter to optionally dump shaders to files.
- Return MoltenVK log level string in pMessageIdName field of debug utils callback data.
- Fix crash when using VK_EXT_metal_objects under ARC.
- Fix potential memory leak in vkQueueWaitIdle().
- Fix argument buffer padding on shader conversion.
- Avoid atomic image usage if native atomics are not supported on the platform.
- Ensure buffer bindings are actually used to avoid potential overrun on Metal buffer indexes.
- Update to the latest SPIRV-Cross
- MSL: Add support for overlapping bindings.
- MSL: Use recursive template for spvArrayCopy().
- MSL: Workaround compiler issue with image fence when used as reference.
- MSL: Fix SUMulExtended for 64-bit inputs.
- Many other miscellaneous bug fixes
- see the MoltenVK release notes for additional and more detailed update information
- Added extensions:
Platform Support Matrix
Feature | Windows | Linux tarball | Ubuntu Packages | macOS SDK (iOS) |
---|---|---|---|---|
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 | X |
GFXReconstruct | X | X | X | |
Extension Layers | ||||
Synchronization 2 | X | X | X | X (*) |
Shader object | X | X | X | 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 (*) |
MoltenVKConvertShader | 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.283.0
- GitHub Repo: KhronosGroup/SPIRV-Cross Version Tag: vulkan-sdk-1.3.283.0
- Github Repo: SPIRV-Reflect Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/SPIRV-Tools, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/Vulkan-Headers, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/Vulkan-Loader, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/Vulkan-Tools, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/Vulkan-ValidationLayers, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/Vulkan-Profiles, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/Vulkan-ExtensionLayer, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: KhronosGroup/Vulkan-Utility-Libraries, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: LunarG/VulkanTools, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: volk, Version Tag: vulkan-sdk-1.3.283.0
- GitHub Repo: AMD Memory Allocator commit: 5677097bafb8477097c6e3354ce68b7a44fd01a4
- GitHub Repo: microsoft/DirectXShaderCompiler commit: 4f4bb4208959a0192b511166fd76bc307edf56ad
- GitHub Repo: google/shaderc commit: 436237a4ab2be3225acedc66016ea2aa82946b37
- GitHub Repo: SaschaWillems/VulkanCapsViewer tag: 3.40
- GitHub Repo: sdl, Version Tag: release-2.30.3
- GitHub Repo: glm, Version Tag: 1.0.1
- GitHub Repo: KhronosGroup/MoltenVK, Version Tag: v1.2.9
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
- Wen 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.
- Both the dxc command line program and libdxcompiler.dylib were inadvertently build as debug mode for this SDK. This will be corrected in the next SDK release.
- 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.