Skip to content

Releases: KhronosGroup/glslang

main-tot

30 Jan 23:24

Choose a tag to compare

Continuous build of the latest main branch by Github

Release 16.2.0

23 Jan 03:41

Choose a tag to compare

Changes in this release:

  • Allow gl_FragDepth identifier to be redeclared
  • Replace 'GL_TASK(MESH)_SHADER_NV' with 'GL_TASK(MESH)_SHADER_EXT'
  • Scalarize swizzled MeshEXT stores
  • Support GL_EXT_long_vector
  • Add missing preamble #define for GL_EXT_nontemporal_keyword
  • Support GL_NV_push_constant_bank
  • Support GL_EXT_descriptor_heap

Release 16.1.0

02 Dec 16:30

Choose a tag to compare

Changes in this release:

  • Avoid emitting OpCapability RuntimeDescriptorArray when unnecessary
  • Improve compilation speed when debug infomation is enabled
  • Fix Debug Info for Retargeted Builtins
  • Support GL_EXT_shader_invocation_reorder
  • Add checks to coopMatMulAdd
  • Implement stringify operator
  • Add ES support for depth layout qualifier
  • Add debug info for hitObjectNV
  • Emit a DebugGlobalVariable instead of DebugLocalVariable for rayQueryEXT
  • Add debug info for constant variable
  • Improve debug line to point declaration
  • Fix bugs in buffer reference alignment
  • Reject string operands in binary and select ops
  • Support GL_EXT_shader_64bit_indexing
  • Support GLSL_EXT_uniform_buffer_unsized_array
  • Add semantic check for cooperative vector loads/stores
  • Improve the debug info name of opaque (sampler) types
  • Support IO mapping of combined samplers and acceleration structures
  • Fix bug in debug info for bool types inside SSBO/UBO
  • Fix bug in debug info for struct member names
  • Add methods for entry point and invert-y to C interface

Release 16.0.0

25 Sep 22:56

Choose a tag to compare

Breaking changes:

  • Remove spirv-remapper (ported to SPIRV-Tools as canonicalize-ids optimization pass)

Other changes:

  • Emit error for in/out structs containing booleans
  • Fix contradictory layout link errors
  • Improve error checks for float8 math
  • Fix bug in cooperative matrix load/store handling of array slices
  • Update memory semantic validation rules to match update to Vulkan specification
  • Simplify glslang grammar for identifier lists
  • Fix erroneous parse errors in variable declarations using existing struct names
  • Fix type conversions for createTensorLayout/ViewNV
  • Fix OpAccessChain signed index issue for small unsigned integers
  • Support GLSL_QCOM_cooperative_matrix_conversion
  • Allow spec constant matrix use
  • Fix inconsistent labeling of capability strings
  • Fix crash on unnamed function parameters under relaxed rules
  • Fix exported member functions in ShaderLang.h

Release 15.4.0

27 Jun 15:24

Choose a tag to compare

Changes in this release:

  • Support GL_NV_gpu_shader5/GL_ARB_gpu_shader5
  • Remove BUILD_SHARED_LIBS option (defer to built-in variable)
  • Remap discard to OpDemoteToHelperInvocation
  • Fix typos and improve readability of help message
  • Support GLSL_QCOM_tile_shading
  • Emit correct capability for linear swept sphere
  • Support GL_EXT_float8_e5m2_e4m3
  • Move E_SPV_ARM_cooperative_matrix_layouts into GLSL.ext.ARM.h
  • Support GL_ARM_tensors

Release 15.3.0

25 Apr 15:27

Choose a tag to compare

Changes in this release:

  • Fix CMake find_package on Windows when building shared libraries
  • Fix crash calling coopMatLoadTensorNV on an array element
  • Avoid reusing array types with stride when no stride is requested
  • Fix non-ASCII comments
  • Support GL_EXT_bfloat16
  • Fix several issues with link-time implicit array size merging
  • Support DebugSourceContinued
  • LiveTraverser no longer traverses switch cases that are statically not accessed
  • Implement optional cross-stage check for inputs with no matching outputs

Release 15.2.0

27 Mar 20:26

Choose a tag to compare

Changes in this release:

  • Fix find_package on Windows when BUILD_SHARED_LIBS=ON
  • Emit error if using in/out with struct pointer
  • Emit SPV_EXT_opacity_micromap if GL extension is present
  • Support GL_NV_linear_swept_spheres
  • Support GLSL_EXT_nontemporal_keyword
  • Support GL_NV_cluster_acceleration_structure
  • Support GL_NV_cooperative_vector
  • Check SparseTextureOffset non-const parameters
  • Support GL_EXT_texture_offset_non_const
  • Revert cross-stage check for missing outputs
  • Support EXT_integer_dot_product
  • Add support for OpTypeRayQueryKHR and OpTypeAccelerationStructureKHR to SPVRemapper

Release 15.1.0

13 Dec 22:00

Choose a tag to compare

Changes in this release:

  • Add Vulkan 1.4 target and client
  • Improve conversion of uniform block to push constant
  • Improve cross stage error reporting by reporting proper stager rather than "unkwown stage"
  • Add warning if forward declaration uses layout qualifiers
  • Implement GLSL_NV_cooperative_matrix2
  • Emit OpModfStruct instead of depracated OpModf
  • Add link-time cross stage optimization
  • Add column to DebugLexicalBlock
  • Propagate errors from symbol table initialization
  • Fix nonsemantic debuginfo line attribution for cooperative matrix

Release 15.0.0

25 Sep 23:18

Choose a tag to compare

Breaking changes in this release:

  • Explicitly export all symbols that are part of the public API and hide other symbols by default

Other changes in this release:

  • Allow building glslang without the SPIR-V backend using the new ENABLE_SPIRV build option
  • Add setResourceSetBinding method to the API
  • Add interface to get the GLSL IO mapper and resolver
  • Allow compute derivative modes when the workgroup dimensions are spec constants
  • Improve debug location of branch/return instructions
  • Silence preprocessor '#' error reporting in inactive #if/#ifdef/#elif/#else blocks
  • Apply GLSL memory decorations to top-level OpVariable
  • Move definition of GLSLANG_EXPORT to visibility.h
  • Merge ancillary libraries into main glslang library and stub originals
  • Add public setSourceFile and addSourceText methods to TShader class
  • Add type checks for hitObjectNV
  • Add optimizerAllowExpandedIDBound to SpvOptions
  • Add SpvTools.h back to public headers
  • Add cross-stage check for missing outputs
  • Fix HLSL offsets for non-buffers
  • Add types and functions for IO mapping to API
  • Add function to set preprocessed code to API
  • Add set/get version functions to API
  • Expose setGlobalUniform functions to API
  • Don't emit debug instructions before an OpPhi
  • Add command-line and API option to enable reporting column location for compiler errors
  • Improve location aliasing checks
  • Support constant expression calculated by matrixCompMult
  • Fix crash caused by atomicCounter() use without arguments
  • Fix multi-line function call line numbers
  • Add line info to OpDebugDeclare for function parameters
  • Fix HLSL OpDebugFunction file name
  • Fix duplicate decorations
  • Enable compilation of glslang without thread support for WASI

Release 14.3.0

25 Jun 22:48

Choose a tag to compare

Changes in this release:

  • Generate vector constructions more efficiently when sizes match
  • Skip identity conversions for 8-bit and 16-bit types
  • Add cmake aliases for public libraries
  • Support ARM extended matrix layout
  • Emit debug info for buffer references
  • Add support for OpExtInstWithForwardRefsKHR
  • Generate SPV_EXT_replicated_compisites when requested by pragma
  • Reuse loads generated for repeated function arguments
  • Fix gl_HitT alias of gl_RayTmax
  • Fix some cases where invalid SPIR-V was being generated when using separate samplers
  • Add back layoutLocation to public API