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