1# Revision history for `glslang` 2 3All notable changes to this project will be documented in this file. 4This project adheres to [Semantic Versioning](https://semver.org/). 5 6## 14.2.0 2024-05-02 7* Improve checking for location aliasing errors 8* Fix undefined behavior in parser 9* Add bounds check to gl_SampleMask 10* Fix alignment and padding of matrices consuming one vector 11* Remove duplicate SPIR-V decorations 12* Check for exponent overflow in float parser 13* Fix bug in relaxed verification rules 14* Fix disassembly of debugBreak 15* Fix bug when importing SPIR-V extended intruction set 16* Fix issues with the interaction of cooperative_matrix and spirv_intrinsics 17* Support SPV_QCOM_image_processing2 18* Support files with UTF8BOM character 19 20## 14.1.0 2024-03-08 21* Add a new --abosute-path command-line option to output absolute paths in error messages 22* Support GL_EXT_control_flow_attributes2 23* Support GL_ARB_shading_language_include 24* Fix HLSL built-in passthrough via inout 25* Enable -Wimplicit-fallthrough and fix warnings 26* Fix -Wmissing_field_initializer warnings 27* Document supported dependencies in known_good.json 28* Clear spirv vector before use 29* Emit debug info for accelerationStructure and rayQuery variables 30* Support NV_shader_atomic_fp16_vector 31* Support GL_EXT_expect_assume_support 32* Allow external control of whether glslang will be tested or installed 33* Improve debug source and line info 34* Support GL_KHR_shader_subgroup_rotate 35* Add SPIRV-Tools-opt dependency if ENABLE_OPT 36* Support EXT_shader_quad_control 37* Add OpAssumeTrueKHR and OpExpectKHR 38* Support GL_EXT_maximal_reconvergence 39* Remove generation of deprecated Target.cmake files 40* Fix array size of gl_SampleMask and gl_SampleMaskIn 41* Support GL_ARB_texture_multisample_extension 42* Emit DebugTypePointer when non-semantic debug info is enabled 43 44## 14.0.0 2023-12-21 45 46### Breaking changes 47* The legacy libraries named HLSL and OGLCompiler have been removed. To avoid future disruptions, please use cmake's find_package mechanism rather than hardcoding library dependencies. 48* Only the headers that are part of glslang's public interface are included in the install target. 49* Remove OVERRIDE_MSVCCRT cmake option. 50 51### Other changes 52* Fix spv_options initialization 53* Fix line number for OpDebugFunction and OpDebugScope for function 54* Fix SPV_KHR_cooperative_matrix enumerants 55* Fix nullptr crash 56* Fix GL_ARB_shader_storage_buffer_object version 57* Fix interpolant ES error 58* Generate DebugValue for constant arguments 59* Overflow/underflow out-of-range floats to infinity/0.0 respectively 60* Support SV_ViewID keywords for HLSL 61* Implement relaxed rule for opaque struct members 62* Add BUILD_WERROR cmake option 63* Add GLSLANG_TESTS cmake option 64* Always generate OpDebugBasicType for bool type 65* Fix GLSL parsing of '#' when not preceded by space or tab 66* Fix GL_ARB_bindless_texture availability 67* Support GL_EXT_draw_instanced extension 68* Support GL_EXT_texture_array extension 69* Fix conversion of 64-bit unsigned integer constants to bool 70* Output 8-bit and 16-bit capabilities when appropriate for OpSpecConstant 71 72## 13.1.1 2023-10-16 73* Initialize compile_only field in C interface 74 75## 13.1.0 2023-10-13 76* Support GL_EXT_texture_shadow_lod 77* Support GL_NV_displacement_micromap 78* Fix ByteAddressBuffer when used a function parameter 79* Add more verbose messages if SPIRV-Tools is not found 80* Fix names for explicitly sized types when emitting nonsemantic debug info 81* Emit error for r-value arguments in atomic memory operations 82* Add --no-link option 83* Beautify preprocessor output format 84* Fix race condition in glslangValidator 85* Only set LocalSizeId mode when necessary 86* Don't emit invalid debug info for buffer references 87 88## 13.0.0 2023-08-23 89 90### Breaking changes 91* Simplify PoolAlloc via thread_local 92 * Remove InitializeDLL functions 93 * Remove OSDependent TLS functions 94* Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL code paths 95 96### Other changes 97* Raise CMAKE minimum to 3.17.2 98* Support GL_KHR_cooperative_matrix 99* Support GL_QCOM_image_processing_support 100* Support outputting each module to a filename with spirv-remap 101* Generate an error when gl_PrimitiveShaderRateEXT is used without enabling the extension 102* Improve layout checking when GL_EXT_spirv_intrinsics is enabled 103 104## 12.3.1 2023-07-20 105 106### Other changes 107* Improve backward compatibility for glslangValidator rename on Windows 108 109## 12.3.0 2023-07-19 110 111### Other changes 112* Rename glslangValidator to glslang and create glslangValidator symlink 113* Support HLSL binary literals 114* Add missing initialization members for web 115* Improve push_constant upgrading 116* Fix race condition in spirv remap 117* Support pre and post HLSL qualifier validation 118* Force generateDebugInfo when non-semantic debug info is enabled 119* Exit with error if output file cannot be written 120* Fix struct member buffer reference decorations 121 122## 12.2.0 2023-05-17 123 124### Other changes 125* Support GLSL_EXT_shader_tile_image 126* Support GL_EXT_ray_tracing_position_fetch 127* Support custom include callbacks via the C API 128* Add preamble-text command-line option 129* Accept variables as parameters of spirv_decorate_id 130* Fix generation of conditionals with a struct result 131* Fix double expansion of macros 132* Fix DebugCompilationUnit scope 133* Improve line information 134 135## 12.1.0 2023-03-21 136 137### Other changes 138* Reject non-float inputs/outputs for version less than 120 139* Fix invalid BufferBlock decoration for SPIR-V 1.3 and above 140* Add HLSL relaxed-precision float/int matrix expansions 141* Block decorate Vulkan structs with RuntimeArrays 142* Support InterlockedAdd on float types 143 144## 12.0.0 2023-01-18 145 146### Breaking changes 147* An ABI was accidentally broken in #3014. Consequently, we have incremented the major revision number. 148 149### Other changes 150* Add support for ARB_bindless_texture. 151* Add support for GL_NV_shader_invocation_reorder. 152* Fix const parameter debug types when using NonSemantic.Shader.DebugInfo.100. 153* Fix NonSemantic.Shader.DebugInfo.100 disassembly. 154* Fix MaxDualSourceDrawBuffersEXT usage. 155* Fix structure member reference crash. 156 157## 11.13.0 2022-12-06 158 159### Other changes 160* Make HelperInvocation accesses volatile for SPIR-V 1.6. 161* Improve forward compatibility of ResourceLimits interface 162* Remove GLSLANG_ANGLE 163 164## 11.12.0 2022-10-12 165 166### Other changes 167* Update generator version 168* Add support for GL_EXT_mesh_shader 169* Add support for NonSemantic.Shader.DebugInfo.100 170* Make OpEmitMeshTasksEXT a terminal instruction 171* Make gl_SubGroupARB a flat in int in Vulkan 172* Add support for GL_EXT_opacity_micromap 173* Add preamble support to C interface 174 175## 11.11.0 2022-08-11 176 177### Other changes 178* Add OpSource support to C interface 179* Deprecate samplerBuffer for spirv1.6 and later 180* Add support for SPV_AMD_shader_early_and_late_fragment_tests 181 182## 11.10.0 2022-06-02 183 184### Other changes 185* Generate OpLine before OpFunction 186* Add support for VK_EXT_fragment_shader_barycentric 187* Add whitelist filtering for debug comments in SPIRV-Remap 188* Add support for GL_EXT_ray_cull_mask 189 190## 11.9.0 2022-04-06 191 192### Other changes 193* Add GLSL version override functionality 194* Add eliminate-dead-input-components to -Os 195* Add enhanced-msgs option 196* Explicitly use Python 3 for builds 197 198## 11.8.0 2022-01-27 199 200### Other changes 201* Add support for SPIR-V 1.6 202* Add support for Vulkan 1.3 203* Add --hlsl-dx-position-w option 204 205## 11.7.0 2021-11-11 206 207### Other changes 208* Add support for targeting Vulkan 1.2 in the C API 209 210## 11.6.0 2021-08-25 211 212### Other changes 213* Atomic memory function only for shader storage block member or shared variable 214* Add support for gl_MaxVaryingVectors for ogl 215* Fix loading bool arrays from interface blocks 216* Generate separate stores for partially swizzled memory stores 217* Allow layout(std430) uniform with GL_EXT_scalar_block_layout 218* Support for pragma STDGL invariant(all) 219* Support for GL_NV_ray_tracing_motion_blur 220 221## 11.5.0 2021-06-23 222 223### Other changes 224* Implement GLSL_EXT_shader_atomic_float2 225* Implement GL_EXT_spirv_intrinsics 226* Fixed SPIR-V remapper not remapping OpExtInst instruction set IDs 227* only declare compatibility gl_ variables in compatibility mode 228* Add support for float spec const vector initialization 229* Implement GL_EXT_subgroup_uniform_control_flow. 230* Fix arrays dimensioned with spec constant sized gl_WorkGroupSize 231* Add support for 64bit integer scalar and vector types to bitCount() builtin 232 233## 11.4.0 2021-04-22 234 235### Other changes 236* Fix to keep source compatible with CMake 3.10.2 237 238## 11.3.0 2021-04-21 239 240### Other changes 241* Added --depfile 242* Added --auto-sampled-textures 243* Now supports InterpolateAt-based functions 244* Supports cross-stage automatic IO mapping 245* Supports GL_EXT_vulkan_glsl_relaxed (-R option) 246 247## 11.2.0 2021-02-18 248 249### Other changes 250* Removed Python requirement when not building with spirv-tools 251* Add support for GL_EXT_shared_memory_block 252* Implement GL_EXT_null_initializer 253* Add CMake support for Fuschia 254 255## 11.1.0 2020-12-07 256 257### Other changes 258* Added ray-tracing extension support 259 260## 11.0.0 2020-07-20 261 262### Breaking changes 263 264#### Visual Studio 2013 is no longer supported 265 266[As scheduled](https://github.com/KhronosGroup/glslang/blob/9eef54b2513ca6b40b47b07d24f453848b65c0df/README.md#planned-deprecationsremovals), 267Microsoft Visual Studio 2013 is no longer officially supported. Please upgrade 268to at least Visual Studio 2015. 269 270## 10.15.3847 2020-07-20 271 272### Breaking changes 273 274* The following files have been removed: 275 * `glslang/include/revision.h` 276 * `glslang/include/revision.template` 277 278The `GLSLANG_MINOR_VERSION` and `GLSLANG_PATCH_LEVEL` defines have been removed 279from the public headers. \ 280Instead each build script now uses the new `build_info.py` 281script along with the `build_info.h.tmpl` and this `CHANGES.md` file to generate 282the glslang build-time generated header `glslang/build_info.h`. 283 284The new public API to obtain the `glslang` version is `glslang::GetVersion()`. 285 286### Other changes 287* `glslang` shared objects produced by CMake are now `SONAME` versioned using 288 [Semantic Versioning 2.0.0](https://semver.org/). 289