• main-tot 43c384bf08

    main-tot Stable

    archiver-bot released this 2026-10-14 17:21:30 -05:00 | 0 commits to main since this release

    Continuous build of the latest main branch by Github

    Downloads
  • 16.6.0 e1b562a8be

    16.6.0 Stable

    archiver-bot released this 2026-09-11 12:38:23 -05:00 | 46 commits to main since this release

    16.6.0 2026-09-10

    New Extensions

    • Implement GL_EXT_cooperative_matrix_maintenance1
    • Implement GL_EXT_optional_input_attachment_index
    • Implement DebugEntryPoint for NonSemantic.Shader.DebugInfo 102

    SPV_KHR_abort / abortEXT

    • Require the first parameter of abortEXT to be a string literal, emit an error if it is not
    • Require the first parameter of printf to be a string literal, emit an error if it is not
    • Fix abort message struct layout for matrix, vector, and aggregate arguments
    • Pack the abort message with scalar layout when the shader requests GL_EXT_scalar_block_layout
    • Pack the abort message with scalar layout unconditionally so that consumers use one fixed set of rules
    • Fix abort message type to use separate value and laid out types, removing invalid ArrayStride on constant types
    • Fix abort to handle boolean and opaque types correctly

    API Changes

    • Add access to the source entry point in the C API

    Bug Fixes

    • Fix relaxed Vulkan access chain traversal for buffer references
    • Fix 32-bit identity fillers used in 16-bit matrix constructors
    • Fix out-of-bounds slot access for atomic_uint in reserveResourceSlot
    • Fix out-of-bounds read when folding component-wise intrinsics on matrices
    • Fix out-of-bounds dereference on undeclared ray tracing location
    • Fix out-of-bounds read on empty entryPoints in postProcessFeatures
    • Fix out-of-bounds read on short coopMatPerElementNV argument list
    • Fix crash on empty struct initializers in cascading error mode
    • Guard empty block member list in getBlockSize
    • Validate argument count in decomposeStructBufferMethods
    • Require constant scope and semantics operands in memorySemanticsCheck
    • Fix string escaping in preprocessed output
    • Fix Aligned decoration on buffer_reference swizzle-store read-modify-write load
    • Fold bit-cast conversions as constant expressions
    • Fold hyperbolic functions (sinh, cosh, tanh, asinh, acosh, atanh) as constant expressions
    • Improve parsing of #pragma STDGL

    Performance

    • Replace linear search with a hash table for composite and struct constant creation in the SPIR-V builder
    Downloads
  • 16.5.0 a8d28bd082

    16.5.0 Stable

    archiver-bot released this 2026-08-03 12:57:44 -05:00 | 87 commits to main since this release

    16.5.0 2026-07-31

    New Extensions

    • Implement GLSL_EXT_split_barrier / SPV_EXT_split_barrier
    • Implement GLSL_QCOM_multiple_wait_queues
    • Implement GLSL_QCOM_image_processing3
    • Implement GL_EXT_function_control_attributes

    API Changes

    • Expose TVarEntryInfo as part of the public API in ShaderLang.h

    Bug Fixes

    • Fix undefined shifts and signed overflow in #if expression evaluation
    • Fix out-of-bounds read when indexing idInstruction and idDescriptor
    • Fix null dereference in iomapper when uniformVarMap is empty
    • Fix out-of-bounds read on empty array initializer in convertInitializerList
    • Fix stack overflow on deeply nested macro invocations, capping macro expansion depth at 200 and emitting an error
    • Fix out-of-bounds read in handlePragma when #pragma STDGL has fewer than 4 tokens
    • Fix crash in preprocessor output when a backslash-newline continuation appears at end of input due to column underflow
    • Fix crash on excess #endif directives when a malformed #if expression desynchronizes elseSeen/ifdepth preprocessor counters
    • Fix out-of-bounds write in memberRemapper for nested buffer_reference blocks
    • Fix out-of-bounds read on long vector index in checkIndex

    Other

    • Update SPIR-V size optimization and HLSL legalization pass lists to match spirv-tools, and add performance optimization option
    • Increase input_attachment_index limit to INT_MAX
    • Print compile and link error logs to stderr instead of stdout
    Downloads
  • 16.4.0 168d452a4f

    archiver-bot released this 2026-07-14 14:35:18 -05:00 | 119 commits to main since this release

    Descriptor Heap:

    • Implement GLSL_EXT_structured_descriptor_heap with SPIR-V layout generation, heap offset access, buffer references, matrix layout decorations, and correct readonly/writeonly qualifier propagation for buffer and image descriptors
    • Fix descriptor heap-bound buffer access to use typed pointers
    • Omit NonUniform decoration when using descriptor heaps, as the SPIR-V spec does not require it
    • Add --relax-set-binding-limits option to allow large layout(set) and layout(binding) values for descriptor heap-style workflows with sparse set spaces
    • Reject combined image samplers with descriptor_heap

    Compute Shader Derivatives:

    • Fix GL_KHR_compute_shader_derivatives regressions on shaders using the GL_NV variant
    • Update compute shader derivative rules to allow texture operations with implicit derivatives without extensions, falling back to LoD 0

    New Extensions:

    • Implement GL_EXT_ocp_microscaling_types
    • Implement GL_NV_cooperative_matrix_decode_vector
    • Add basic support for GL_NV_desktop_lowp_mediump
    • Implement GL_EXT_opacity_micromap_ray_query_mode

    Bug Fixes:

    • Fix generated decoration string from UTF8EncodingKHR to UTFEncodingKHR
    • Fix missing SPIR-V extension emission for float16 derivative functions with SPV_AMD_gpu_shader_half_float
    • Apply NoContraction decoration to dot() when noContraction is set
    • Fix OpStore of buffer device address pointer to use 8-byte alignment, consistent with loads
    • Fix RayTracingOpacityMicromapKHR capability emission to only occur when gl_RayFlagsForceOpacityMicromap2StateEXT is actually used, fixing SPIR-V validation failures in ray query shaders outside ray-tracing pipeline stages
    • Fix setInvertY() to apply Y-inversion to GLSL vertex, geometry, and tessellation-evaluation shaders (previously only affected HLSL)
    • Fix .length() on arrays of long/cooperative vectors to use OpArrayLength instead of a constant component count
    • Fix unnecessary cooperative matrix conversions when creating arrays of KHR cooperative matrices
    • Add error for cooperative matrix *= with bf16/fp8 scalar operands
    • Fix out-of-bounds access in elseSeen at maximum #if/#ifdef nesting depth
    • Fix out-of-bounds read on empty struct texture template types
    • Fix crash in layoutObjectCheck when accessing members of an empty block
    • Emit an error when HLSL [numthreads] is given more than three arguments instead of crashing the compiler.
    • Emit error when attempting to convert a literal string to an incompatible type
    • Fix abortKHR to preserve the original user-defined string without modification
    • Fix out-of-bounds indexing in TDefaultIoResolverBase::addStage when a negative EShLanguage value is passed

    Other:

    • Add --discard-is-terminate option to emit OpTerminateInvocation instead of OpDemoteToHelperInvocation for GLSL discard when targeting SPIR-V 1.6+
    • Add REUSE license compliance infrastructure
    Downloads
  • 16.3.0 275822a626

    archiver-bot released this 2026-05-01 15:50:11 -05:00 | 187 commits to main since this release

    Deprecation Notice:

    • Deprecate the HLSL front-end. See issue #4210 for details.

    Changes in this release:

    • Support GL_NV_explicit_typecast
    • Raise the maximum limit for specialization constant IDs
    • Add explicit 8-bit and 16-bit type support for bitfieldReverse
    • Implement system include directives for the standalone wrapper
    • Check for invalid usage of gl_WorkGroupSize components
    • HLSL: Provide string error context only if token is a string
    • Fix layoutDescriptorStride bitfield truncation for large stride values
    • GL_EXT_long_vector with 2-4 components no longer require LongVector capability
    • Fix alignment of guard blocks
    • Fix ShaderDebugInfo having invalid line numbers when generating SPIRV 1.0
    • Replace ostringstream with string concat during #include preprocessing
    • Check for bad parameters on long vector type
    • HLSL: Check for bad integer argument on Load*, Store*, Interlocked*
    • HLSL: handle type error for ternary operator
    • HLSL: Ensure scope is popped even when method body fails to parse
    • Avoid unneccessary copies in SpirvIntrinsics.cpp
    • Unconditionally emit debug source for include files when using non-semantic debug info
    • Support bfloat16 and float8 tensors
    • Add small type capabilities for GLSL.STD.450
    • Add initial support for NonSemantic.Shader.DebugInfo 101
    • Fix access chains for GL_ARM_tensors with raw descriptor heap accesses
    • Support GL_KHR_compute_shader_derivatives
    • Require a quad or linear layout qualifier to be specified for GL_KHR_compute_shader_derivatives
    • Supportx SPV_KHR_constant_data and SPV_KHR_abort
    Downloads
  • 16.2.0 f0bd0257c3

    archiver-bot released this 2026-01-22 21:35:29 -06:00 | 246 commits to main since this release

    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
    Downloads
  • 16.1.0 b5782e52ee

    archiver-bot released this 2025-12-01 21:10:01 -06:00 | 270 commits to main since this release

    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
    Downloads
  • 16.0.0 a57276bf55

    archiver-bot released this 2025-09-25 17:40:23 -05:00 | 308 commits to main since this release

    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
    Downloads
  • 15.4.0 8a85691a07

    archiver-bot released this 2025-06-27 10:05:50 -05:00 | 352 commits to main since this release

    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
    Downloads
  • 15.3.0 fc9889c889

    archiver-bot released this 2025-04-24 18:30:07 -05:00 | 382 commits to main since this release

    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
    Downloads