-
main-tot Stable
released this
2026-10-14 17:21:30 -05:00 | 0 commits to main since this releaseContinuous build of the latest main branch by Github
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
16.6.0 Stable
released this
2026-09-11 12:38:23 -05:00 | 46 commits to main since this release16.6.0 2026-09-10
New Extensions
- Implement
GL_EXT_cooperative_matrix_maintenance1 - Implement
GL_EXT_optional_input_attachment_index - Implement
DebugEntryPointforNonSemantic.Shader.DebugInfo102
SPV_KHR_abort/abortEXT- Require the first parameter of
abortEXTto be a string literal, emit an error if it is not - Require the first parameter of
printfto 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
ArrayStrideon constant types - Fix
abortto 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_uintinreserveResourceSlot - 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
entryPointsinpostProcessFeatures - Fix out-of-bounds read on short
coopMatPerElementNVargument 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
Aligneddecoration onbuffer_referenceswizzle-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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Implement
-
16.5.0 Stable
released this
2026-08-03 12:57:44 -05:00 | 87 commits to main since this release16.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
TVarEntryInfoas part of the public API inShaderLang.h
Bug Fixes
- Fix undefined shifts and signed overflow in
#ifexpression evaluation - Fix out-of-bounds read when indexing
idInstructionandidDescriptor - Fix null dereference in iomapper when
uniformVarMapis 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
handlePragmawhen#pragma STDGLhas 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
#endifdirectives when a malformed#ifexpression desynchronizeselseSeen/ifdepthpreprocessor counters - Fix out-of-bounds write in
memberRemapperfor nestedbuffer_referenceblocks - 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_indexlimit toINT_MAX - Print compile and link error logs to stderr instead of stdout
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Implement
-
Release 16.4.0 Stable
released this
2026-07-14 14:35:18 -05:00 | 119 commits to main since this releaseDescriptor Heap:
- Implement
GLSL_EXT_structured_descriptor_heapwith SPIR-V layout generation, heap offset access, buffer references, matrix layout decorations, and correctreadonly/writeonlyqualifier propagation for buffer and image descriptors - Fix descriptor heap-bound buffer access to use typed pointers
- Omit
NonUniformdecoration when using descriptor heaps, as the SPIR-V spec does not require it - Add
--relax-set-binding-limitsoption to allow largelayout(set)andlayout(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_derivativesregressions on shaders using theGL_NVvariant - 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
UTF8EncodingKHRtoUTFEncodingKHR - Fix missing SPIR-V extension emission for
float16derivative functions withSPV_AMD_gpu_shader_half_float - Apply
NoContractiondecoration todot()whennoContractionis set - Fix
OpStoreof buffer device address pointer to use 8-byte alignment, consistent with loads - Fix
RayTracingOpacityMicromapKHRcapability emission to only occur whengl_RayFlagsForceOpacityMicromap2StateEXTis 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 useOpArrayLengthinstead 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
elseSeenat maximum#if/#ifdefnesting depth - Fix out-of-bounds read on empty struct texture template types
- Fix crash in
layoutObjectCheckwhen 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
abortKHRto preserve the original user-defined string without modification - Fix out-of-bounds indexing in
TDefaultIoResolverBase::addStagewhen a negativeEShLanguagevalue is passed
Other:
- Add
--discard-is-terminateoption to emitOpTerminateInvocationinstead ofOpDemoteToHelperInvocationfor GLSLdiscardwhen targeting SPIR-V 1.6+ - Add REUSE license compliance infrastructure
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Implement
-
Release 16.3.0 Stable
released this
2026-05-01 15:50:11 -05:00 | 187 commits to main since this releaseDeprecation 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Release 16.2.0 Stable
released this
2026-01-22 21:35:29 -06:00 | 246 commits to main since this releaseChanges 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Release 16.1.0 Stable
released this
2025-12-01 21:10:01 -06:00 | 270 commits to main since this releaseChanges 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Release 16.0.0 Stable
released this
2025-09-25 17:40:23 -05:00 | 308 commits to main since this releaseBreaking 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Release 15.4.0 Stable
released this
2025-06-27 10:05:50 -05:00 | 352 commits to main since this releaseChanges 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Release 15.3.0 Stable
released this
2025-04-24 18:30:07 -05:00 | 382 commits to main since this releaseChanges 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads