Releases: KhronosGroup/SPIRV-Tools
Releases ยท KhronosGroup/SPIRV-Tools
Release v2026.1
- General
- spirv-tools: Fix infinite recursion in SmallVector::operator== on MSVC (#6470)
- Add support for SPV_NV_push_constant_bank (#6507)
- Enable UseMultiToolTask for msbuild performance (#6472)
- Fix asan error in stack usage (#6434)
- Fix crash in array length validation (#6500)
- Fix infinite loop in logical pointer validation (#6450)
- Implement SPV_EXT_descriptor_heap (#6503)
- Optimizer
- Adding constant folding for NMin, NMax and NClamp (#6433)
- Also remap DebugScope instructions (#6501)
- Change ValueNumber to use spivOpcodeIsCommutativeBinaryOperator (#6431)
- Extending factoring folding rules to support subtraction (#6432)
- Extending negation folding rules (#6444)
- Folding Rules For Common Comparisons (#6437)
- Folding rules for negation and cancellation (#6452)
- Harden CFGCleanupPass against ID overflow (#6439)
- Harden CombineAccessChainsPass against ID overflow (#6440)
- Harden CopyPropagateArraysPass against ID overflow (#6441)
- Remove lingering debug-scopes. (#6416)
- add adce test for debug declare (#6462)
- fix adce when ns debug info present (#6217) (#6420)
- Validator
- Handle OpTypeVectorIdEXT in validate_interfaces.cpp (#6492)
- Validate SPV_EXT_long_vector (#6471)
- Validate floats/int Image Operands are 32-bit (#6477)
- Add Mesh Shading Read Output check (#6426)
- Add Mesh/Task to check for LocalSize (#6459)
- Add missing LOD non-zero MS (#6496)
- Add width to IsFloatScalarType (#6489)
- Better atomic storage class message (#6425)
- Better error message when types are the same (#6427)
- Check Mesh Topology builtin by entry point (#6457)
- Check for CoopMat scope (#6442)
- Combine Image Coordinate checks (#6494)
- Fix crash with bad OpUntypedArrayLengthKHR (#6493)
- Label VUID 10823 (#6488)
- Provide RuntimeDescriptorArray hint in message (#6448)
- Use new StorageClassToString util (#6460)
- Use validation_state.cpp helpers (#6478)
- Validate ImageQuerySizeLod is 32-bit (#6479)
- Validate Mesh Shader output are an array (#6449)
- add missing relational ops to InvalidTypePass (#6495)
- Diff
- diff: Match OpExtInst in debug and types/values sections (#6430)
Release v2025.5
- General
- Validator
- Optimizer
- spirv-opt: Add a folding rule for
OpBitReverseand fixOpBitCastto support lower to higher bit conversions. (#6321) - spirv-opt: Add basic support for graphs (#6351)
- spirv-opt: Adding folding rules for bitwise and (#6361)
- spirv-opt: Adding normal form to ValueNumber calculation (#6371)
- spirv-opt: Cache IsReadOnlyLoad in ValueNumberTable (#6385)
- spirv-opt: Clone decorations when unrolling loops (#6373)
- spirv-opt: Correct ADCE bug keeping dead DebugValue Value operands (#6368)
- spirv-opt: Fix constant folding for
OpBitcaston signed integers. (#6378) - spirv-opt: Fix id overflow in ConvertToSampledImage (#6339)
- spirv-opt: Handle ID overflow in AggressiveDCEPass (#6366)
- spirv-opt: Handle ID overflow in SplitCombinedImageSamplerPass (#6406)
- spirv-opt: Handle id overflow in CCP and constant folding (#6367)
- spirv-opt: Handle id overflow in MergeReturnPass (#6340)
- spirv-opt: Handle id overflow in amd_ext_to_khr (#6403)
- Add
SPV_KHR_maximal_reconvergenceto the allowlist (#6372) - Adding folding rules for commutive bitwise operations (xor/or/and). (#6358)
- [OPT] Move definition of Pass::Status to Utils (#6402)
- spirv-opt: Add a folding rule for
- Validator:
- spirv-val: Add LocalInvocationIndex checks (#6395)
- spirv-val: Add validation for SPV_KHR_fma (#6388)
- spirv-val: Break up the 3000 line ValidateExtInst function (#6364)
- spirv-val: Fix VUID churn for 10685 (#6389)
- spirv-val: Improve Explicit Layout message (#6331)
- spirv-val: Use spvOpcodeString consistently (#6393)
- Relax validation rule for DebugGlobalVariable variable (#6382)
- Validate SPV_EXT_shader_64bit_indexing (#6376)
- Validate logical pointer restrictions (#6240)
- [tools/val] fix u8str for real this time (#6341)
- Add VK_EXT_shader_uniform_buffer_unsized_array (#6386)
- Assembler
v2025.4
v2025.3
V2025.2
Release v2025.1
- General
- diff: Fix crash in OpString matching (#5988)
- Add SPV_AMDX_shader_enqueue version 2 support (#5838)
- add support for SPV_INTEL_subgroup_matrix_multiply_accumulate (#5928)
- update cmake_minimum_required to 3.22.1 (#5925)
- Add OpImageSampleFootprintNV to IsAllowedSampledImageOperand (#5914)
- assembler: ensure progress when seeking the version string (#5910)
- Optimizer
- Validator
- spirv-val: Add AllowVulkan32BitBitwise option (#6001)
- Fix untyped pointer comparison validation (#6004)
- spirv-val: Update VUIDs for 308 header (#5990)
- spirv-val: fix env parsing for vk1.1spv1.4 (#5985)
- Add validation for SPV_NV_linear_swept_spheres. (#5975)
- Add validation SPV_NV_cluster_acceleration_structure. (#5974)
- Improve the instruction diagnostic for some access chain errors (#5978)
- Update physical storage buffer validation to match SPIR-V 1.6.5 (#5977)
- Validate SPV_NV_cooperative_vector (#5972)
- Fix layout checks with untyped pointers (#5970)
- spirv-val: Update mislabeled VUIDs (#5964)
- More explicit layout validation (#5958)
- spirv-val: Add VK_KHR_maintenance8 support (#5951)
- Add EXT_mesh_shader validation support (#5640)
- spirv-val: Remove OpenCL ivec3 req (#5940)
- spirv-val: Validate zero product workgroup size (#5407)
- Relax DebugLine validation (#5916)
- Linker
Release v2024.4
- General
- Optimizer
- Validator
- Linker
- allow linking functions with different pointer arguments (#5534)
Release v2024.3
- General
- Optimizer
- Validator
- Disassembler
Release v2024.2
- General
- Optimizer
- Validator
Release v2024.1
IMPORTANT:
This release is the last one we will publish here until further notice. The official SDK releases can be found on LunarG's website. They offer 2 options: the prebuilt & tested binaries, or a list of known-good commits to build your own release binaries.
- General
- Add tooling support for SPV_KHR_maximal_reconvergence (#5542)
- Add support for SPV_KHR_float_controls2 (#5543)
- SPV_KHR_quad_control (#5547)
- Fold 64-bit int operations (#5561)
- update image enum tests to remove Kernel capability (#5562)
- Support operand kind for SPV_INTEL_maximum_registers (#5580)
- SPV_NV_shader_atomic_fp16_vector (#5581)
- Support for SPV_QCOM_image_processing2 (#5582)
- Fix access chain struct checks (#5592)
- Optimizer
- opt: add Int16 and Float16 to capability trim pass (#5519)
- Add preserver-interface option to spirv-opt (#5524)
- spirv-opt: Fix OpCompositeExtract relaxation with struct operands (#5536)
- opt: Add VulkanMemoryModelDeviceScope to trim (#5544)
- opt: Add TrimCapabilities pass to spirv-opt tool (#5545)
- Add modify-maximal-reconvergence to spirv-opt help (#5546)
- opt: add SPV_EXT_mesh_shader to opt allowlist (#5551)
- opt: Add OpEntryPoint to DescriptorScalarReplacement pass (#5553)
- opt: prevent meld to merge block with MaximalReconvergence (#5557)
- [OPT] Use new instruction folder for for all opcodes in spec consti folding (#5569)
- [OPT] Identify arrays with unknown length in copy prop arrays (#5570)
- [OPT] Add removed unused interface var pass to legalization passes (#5579)
- Validator
- spirv-val: Re-enable OpControlBarrier VU (#5527)
- spirv-val: Add Mesh Primitive Built-In validaiton (#5529)
- spirv-val: Validate PhysicalStorageBuffer Stage Interface (#5539)
- spirv-val: Multiple interface var with same SC (#5528)
- spirv-val: Revert Validate PhysicalStorageBuffer Stage Interface (#5575)
- spirv-val: Make Constant evaluation consistent (#5587)