Skip to content

Releases: KhronosGroup/SPIRV-Tools

Release v2024.1

29 Mar 10:02
04896c4
Compare
Choose a tag to compare

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)

SPIRV-Tools v2023.2

30 Mar 06:47
44d72a9
Compare
Choose a tag to compare
  • General
    • build: move from c++11 to c++17 (#4983)
    • tools: refactorize tools flags parsing. (#5111)
    • Add C interface for Optimizer (#5030)
    • libspirv.cpp: adds c++ api for spvBinaryParse (#5109)
    • build: change the way we set cxx version for bazel. (#5114)
  • Optimizer
    • Fix null pointer in FoldInsertWithConstants. (#5093)
    • Fix removal of dependent non-semantic instructions (#5122)
    • Remove duplicate lists of constant and type opcodes (#5106)
    • opt: fix spirv ABI on Linux again. (#5113)
  • Validator
    • Validate decoration of structs with RuntimeArray (#5094)
    • Validate operand type before operating on it (#5092)
    • spirv-val: Conditional Branch without an exit is invalid in loop header (#5069)
    • spirv-val: Initial SPV_EXT_mesh_shader builtins (#5080)

SPIRV-Tools v2023.1

18 Jan 21:57
63de608
Compare
Choose a tag to compare

v2023.1 2023-01-17

  • General
    • Renamed "master" to "main" (issue#5051)
    • Validate version 5 of clspv reflection (#5050)
    • Remove testing support for VS2015 (#5027)
    • Fix undef behaviour in hex float parsing (#5025)
    • Require C++11 or later (#5020)
  • Instrument
    • Instrument: Fix bindless checking for BufferDeviceAddress (#5049)
  • Optimizer
    • Optimize allocation of spvtools::opt::Instruction::operands_ (#5024)
    • spirv-opt: Fix OpCompositeInsert with Null Constant (#5008)
    • spirv-opt: Handle null CompositeInsert (#4998)
    • Add option to ADCE to remove output variables from interface. (#4994)
    • Add support for tesc, tese and geom to EliminateDead*Components (#4990)
    • Add pass to eliminate dead output components (#4982)
    • spirv-opt: Add const folding for CompositeInsert (#4943)
    • Add passes to eliminate dead output stores (#4970)
    • Prevent eliminating case constructs in block merging (#4976)
  • Validator
    • Fix layout validation (#5015)
    • Fix use of invalid analysis (#5013)
    • Fix infinite loop in validator (#5006)
    • Add validation support for SPV_NV_shader_invocation_reorder. (#4979)
    • Only validate full layout in Vulkan environments (#4972)
    • spirv-val: Label new Vulkan OpPtrAccessChain VUs (#4975)
    • spirv-val: Add OpPtrAccessChain Base checks (#4965)

v2022.4 2022-10-12

07 Dec 11:05
Compare
Choose a tag to compare

v2022.4 2022-10-12

  • General
    • Support Narrow Types in BitCast Folding Rule (#4941)
    • spirv-diff: Allow no SpecId (#4904)
    • build: cmake: Add support for GNU/Hurd (#4895)
    • Implement tool changes for SPV_EXT_mesh_shader. (#4915)
  • Validator
    • spirv-val: Add SPV_ARM_core_builtins validation (#4958)
    • spirv-val: Add an option to use friendly names or not (#4951)
    • spirv-val: Consistently quote ids in messages (#4950)
    • spirv-val: Add initial SPV_EXT_mesh_shader validation (#4924)
    • spirv-val: Make it legal to use arrays of ray queries (#4938)
    • spirv-val: Better message for using OpTypeBool in input/output (#4901)
    • spirv-val: Add SPV_KHR_ray_tracing storage class (#4868)
  • Optimizer
    • spirv-opt: Fix stacked CompositeExtract constant folds (#4932)
    • Improve time to build dominators (#4916)
    • Fix ADCE to mark scope and inlined_at of line instructions as live. (#4910)
    • Improve algorithm to reorder blocks in a function (#4911)
    • Add structs to eliminate dead input components (#4894)
    • spirv-opt: fix copy-propagate-arrays index opti on structs. (#4891)
    • Fix ADCE to not eliminate top level DebugInfo instructions (#4889)
    • Fix array copy propagation (#4890)

v2022.3 2022-08-11

07 Dec 11:04
Compare
Choose a tag to compare
  • General
    • Add SPV_KHR_fragment_shader_barycentric support (#4805)
    • Add support for SPV_KHR_subgroup_rotate (#4786)
    • use exec_tools instead of tools for better RBE compatibility (#4837)
    • Write binary files to stdout in binary on windows. (#4834)
    • Allow spirv-opt print-all to show pretty IDs (#4888)
  • Validator
    • spirv-val: Add PerVertexKHR (#4807)
    • spirv-opt : Add FixFuncCallArgumentsPass (#4775)
    • spirv-val: Add CullMaskKHR support (#4792)
    • Require ColMajor or RowMajor for matrices (#4878)
    • spirv-val: Add SPV_KHR_ray_query (#4848)
    • spirv-val: Add SPV_KHR_ray_tracing instructions (#4871)
    • Implement SPV_NV_bindless_texture related changes (#4847)
    • spirv-val: Add OpConvertUToAccelerationStructureKHR (#4838)
    • spirv-val: Add support for SPV_AMD_shader_early_and_late_fragment_tests (#4812)
  • Optimizer
    • Fold multiply and subtraction into FMA with negation (#4808)
    • Add more folding for composite instructions (#4802)
    • spirv-opt: add pass for interface variable scalar replacement (#4779)
    • Don't try to unroll loop with step count 0. (#4769)
    • spirv-opt: SPV_NV_bindless_texture related changes (#4870)
  • Linker
    • linker: Recalculate interface variables (#4784)

SPIRV-Tools v2022.2

07 Apr 19:30
Compare
Choose a tag to compare
Finalizing v2022.2  release.

SPIRV-Tools v2022.1

26 Jan 20:05
Compare
Choose a tag to compare
Finalizing v2022.1 release.

SPIRV-Tools v2021.4

11 Nov 17:11
Compare
Choose a tag to compare
Finalizing v2021.4 release

SPIRV-Tools v2021.3

10 Sep 14:44
Compare
Choose a tag to compare
Finalizing v2021.3 release.

SPIRV-Tools v2020.4

11 Aug 20:55
Compare
Choose a tag to compare
Finalizing v2020.4 release.