1617a3babSopenharmony_ci# Revision history for `glslang` 2617a3babSopenharmony_ci 3617a3babSopenharmony_ciAll notable changes to this project will be documented in this file. 4617a3babSopenharmony_ciThis project adheres to [Semantic Versioning](https://semver.org/). 5617a3babSopenharmony_ci 6617a3babSopenharmony_ci## 14.0.0 2023-12-21 7617a3babSopenharmony_ci 8617a3babSopenharmony_ci### Breaking changes 9617a3babSopenharmony_ci* 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. 10617a3babSopenharmony_ci* Only the headers that are part of glslang's public interface are included in the install target. 11617a3babSopenharmony_ci* Remove OVERRIDE_MSVCCRT cmake option. 12617a3babSopenharmony_ci 13617a3babSopenharmony_ci### Other changes 14617a3babSopenharmony_ci* Fix spv_options initialization 15617a3babSopenharmony_ci* Fix line number for OpDebugFunction and OpDebugScope for function 16617a3babSopenharmony_ci* Fix SPV_KHR_cooperative_matrix enumerants 17617a3babSopenharmony_ci* Fix nullptr crash 18617a3babSopenharmony_ci* Fix GL_ARB_shader_storage_buffer_object version 19617a3babSopenharmony_ci* Fix interpolant ES error 20617a3babSopenharmony_ci* Generate DebugValue for constant arguments 21617a3babSopenharmony_ci* Overflow/underflow out-of-range floats to infinity/0.0 respectively 22617a3babSopenharmony_ci* Support SV_ViewID keywords for HLSL 23617a3babSopenharmony_ci* Implement relaxed rule for opaque struct members 24617a3babSopenharmony_ci* Add BUILD_WERROR cmake option 25617a3babSopenharmony_ci* Add GLSLANG_TESTS cmake option 26617a3babSopenharmony_ci* Always generate OpDebugBasicType for bool type 27617a3babSopenharmony_ci* Fix GLSL parsing of '#' when not preceded by space or tab 28617a3babSopenharmony_ci* Fix GL_ARB_bindless_texture availability 29617a3babSopenharmony_ci* Support GL_EXT_draw_instanced extension 30617a3babSopenharmony_ci* Support GL_EXT_texture_array extension 31617a3babSopenharmony_ci* Fix conversion of 64-bit unsigned integer constants to bool 32617a3babSopenharmony_ci* Output 8-bit and 16-bit capabilities when appropriate for OpSpecConstant 33617a3babSopenharmony_ci 34617a3babSopenharmony_ci## 13.1.1 2023-10-16 35617a3babSopenharmony_ci* Initialize compile_only field in C interface 36617a3babSopenharmony_ci 37617a3babSopenharmony_ci## 13.1.0 2023-10-13 38617a3babSopenharmony_ci* Support GL_EXT_texture_shadow_lod 39617a3babSopenharmony_ci* Support GL_NV_displacement_micromap 40617a3babSopenharmony_ci* Fix ByteAddressBuffer when used a function parameter 41617a3babSopenharmony_ci* Add more verbose messages if SPIRV-Tools is not found 42617a3babSopenharmony_ci* Fix names for explicitly sized types when emitting nonsemantic debug info 43617a3babSopenharmony_ci* Emit error for r-value arguments in atomic memory operations 44617a3babSopenharmony_ci* Add --no-link option 45617a3babSopenharmony_ci* Beautify preprocessor output format 46617a3babSopenharmony_ci* Fix race condition in glslangValidator 47617a3babSopenharmony_ci* Only set LocalSizeId mode when necessary 48617a3babSopenharmony_ci* Don't emit invalid debug info for buffer references 49617a3babSopenharmony_ci 50617a3babSopenharmony_ci## 13.0.0 2023-08-23 51617a3babSopenharmony_ci 52617a3babSopenharmony_ci### Breaking changes 53617a3babSopenharmony_ci* Simplify PoolAlloc via thread_local 54617a3babSopenharmony_ci * Remove InitializeDLL functions 55617a3babSopenharmony_ci * Remove OSDependent TLS functions 56617a3babSopenharmony_ci* Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL code paths 57617a3babSopenharmony_ci 58617a3babSopenharmony_ci### Other changes 59617a3babSopenharmony_ci* Raise CMAKE minimum to 3.17.2 60617a3babSopenharmony_ci* Support GL_KHR_cooperative_matrix 61617a3babSopenharmony_ci* Support GL_QCOM_image_processing_support 62617a3babSopenharmony_ci* Support outputting each module to a filename with spirv-remap 63617a3babSopenharmony_ci* Generate an error when gl_PrimitiveShaderRateEXT is used without enabling the extension 64617a3babSopenharmony_ci* Improve layout checking when GL_EXT_spirv_intrinsics is enabled 65617a3babSopenharmony_ci 66617a3babSopenharmony_ci## 12.3.1 2023-07-20 67617a3babSopenharmony_ci 68617a3babSopenharmony_ci### Other changes 69617a3babSopenharmony_ci* Improve backward compatibility for glslangValidator rename on Windows 70617a3babSopenharmony_ci 71617a3babSopenharmony_ci## 12.3.0 2023-07-19 72617a3babSopenharmony_ci 73617a3babSopenharmony_ci### Other changes 74617a3babSopenharmony_ci* Rename glslangValidator to glslang and create glslangValidator symlink 75617a3babSopenharmony_ci* Support HLSL binary literals 76617a3babSopenharmony_ci* Add missing initialization members for web 77617a3babSopenharmony_ci* Improve push_constant upgrading 78617a3babSopenharmony_ci* Fix race condition in spirv remap 79617a3babSopenharmony_ci* Support pre and post HLSL qualifier validation 80617a3babSopenharmony_ci* Force generateDebugInfo when non-semantic debug info is enabled 81617a3babSopenharmony_ci* Exit with error if output file cannot be written 82617a3babSopenharmony_ci* Fix struct member buffer reference decorations 83617a3babSopenharmony_ci 84617a3babSopenharmony_ci## 12.2.0 2023-05-17 85617a3babSopenharmony_ci 86617a3babSopenharmony_ci### Other changes 87617a3babSopenharmony_ci* Support GLSL_EXT_shader_tile_image 88617a3babSopenharmony_ci* Support GL_EXT_ray_tracing_position_fetch 89617a3babSopenharmony_ci* Support custom include callbacks via the C API 90617a3babSopenharmony_ci* Add preamble-text command-line option 91617a3babSopenharmony_ci* Accept variables as parameters of spirv_decorate_id 92617a3babSopenharmony_ci* Fix generation of conditionals with a struct result 93617a3babSopenharmony_ci* Fix double expansion of macros 94617a3babSopenharmony_ci* Fix DebugCompilationUnit scope 95617a3babSopenharmony_ci* Improve line information 96617a3babSopenharmony_ci 97617a3babSopenharmony_ci## 12.1.0 2023-03-21 98617a3babSopenharmony_ci 99617a3babSopenharmony_ci### Other changes 100617a3babSopenharmony_ci* Reject non-float inputs/outputs for version less than 120 101617a3babSopenharmony_ci* Fix invalid BufferBlock decoration for SPIR-V 1.3 and above 102617a3babSopenharmony_ci* Add HLSL relaxed-precision float/int matrix expansions 103617a3babSopenharmony_ci* Block decorate Vulkan structs with RuntimeArrays 104617a3babSopenharmony_ci* Support InterlockedAdd on float types 105617a3babSopenharmony_ci 106617a3babSopenharmony_ci## 12.0.0 2023-01-18 107617a3babSopenharmony_ci 108617a3babSopenharmony_ci### Breaking changes 109617a3babSopenharmony_ci* An ABI was accidentally broken in #3014. Consequently, we have incremented the major revision number. 110617a3babSopenharmony_ci 111617a3babSopenharmony_ci### Other changes 112617a3babSopenharmony_ci* Add support for ARB_bindless_texture. 113617a3babSopenharmony_ci* Add support for GL_NV_shader_invocation_reorder. 114617a3babSopenharmony_ci* Fix const parameter debug types when using NonSemantic.Shader.DebugInfo.100. 115617a3babSopenharmony_ci* Fix NonSemantic.Shader.DebugInfo.100 disassembly. 116617a3babSopenharmony_ci* Fix MaxDualSourceDrawBuffersEXT usage. 117617a3babSopenharmony_ci* Fix structure member reference crash. 118617a3babSopenharmony_ci 119617a3babSopenharmony_ci## 11.13.0 2022-12-06 120617a3babSopenharmony_ci 121617a3babSopenharmony_ci### Other changes 122617a3babSopenharmony_ci* Make HelperInvocation accesses volatile for SPIR-V 1.6. 123617a3babSopenharmony_ci* Improve forward compatibility of ResourceLimits interface 124617a3babSopenharmony_ci* Remove GLSLANG_ANGLE 125617a3babSopenharmony_ci 126617a3babSopenharmony_ci## 11.12.0 2022-10-12 127617a3babSopenharmony_ci 128617a3babSopenharmony_ci### Other changes 129617a3babSopenharmony_ci* Update generator version 130617a3babSopenharmony_ci* Add support for GL_EXT_mesh_shader 131617a3babSopenharmony_ci* Add support for NonSemantic.Shader.DebugInfo.100 132617a3babSopenharmony_ci* Make OpEmitMeshTasksEXT a terminal instruction 133617a3babSopenharmony_ci* Make gl_SubGroupARB a flat in int in Vulkan 134617a3babSopenharmony_ci* Add support for GL_EXT_opacity_micromap 135617a3babSopenharmony_ci* Add preamble support to C interface 136617a3babSopenharmony_ci 137617a3babSopenharmony_ci## 11.11.0 2022-08-11 138617a3babSopenharmony_ci 139617a3babSopenharmony_ci### Other changes 140617a3babSopenharmony_ci* Add OpSource support to C interface 141617a3babSopenharmony_ci* Deprecate samplerBuffer for spirv1.6 and later 142617a3babSopenharmony_ci* Add support for SPV_AMD_shader_early_and_late_fragment_tests 143617a3babSopenharmony_ci 144617a3babSopenharmony_ci## 11.10.0 2022-06-02 145617a3babSopenharmony_ci 146617a3babSopenharmony_ci### Other changes 147617a3babSopenharmony_ci* Generate OpLine before OpFunction 148617a3babSopenharmony_ci* Add support for VK_EXT_fragment_shader_barycentric 149617a3babSopenharmony_ci* Add whitelist filtering for debug comments in SPIRV-Remap 150617a3babSopenharmony_ci* Add support for GL_EXT_ray_cull_mask 151617a3babSopenharmony_ci 152617a3babSopenharmony_ci## 11.9.0 2022-04-06 153617a3babSopenharmony_ci 154617a3babSopenharmony_ci### Other changes 155617a3babSopenharmony_ci* Add GLSL version override functionality 156617a3babSopenharmony_ci* Add eliminate-dead-input-components to -Os 157617a3babSopenharmony_ci* Add enhanced-msgs option 158617a3babSopenharmony_ci* Explicitly use Python 3 for builds 159617a3babSopenharmony_ci 160617a3babSopenharmony_ci## 11.8.0 2022-01-27 161617a3babSopenharmony_ci 162617a3babSopenharmony_ci### Other changes 163617a3babSopenharmony_ci* Add support for SPIR-V 1.6 164617a3babSopenharmony_ci* Add support for Vulkan 1.3 165617a3babSopenharmony_ci* Add --hlsl-dx-position-w option 166617a3babSopenharmony_ci 167617a3babSopenharmony_ci## 11.7.0 2021-11-11 168617a3babSopenharmony_ci 169617a3babSopenharmony_ci### Other changes 170617a3babSopenharmony_ci* Add support for targeting Vulkan 1.2 in the C API 171617a3babSopenharmony_ci 172617a3babSopenharmony_ci## 11.6.0 2021-08-25 173617a3babSopenharmony_ci 174617a3babSopenharmony_ci### Other changes 175617a3babSopenharmony_ci* Atomic memory function only for shader storage block member or shared variable 176617a3babSopenharmony_ci* Add support for gl_MaxVaryingVectors for ogl 177617a3babSopenharmony_ci* Fix loading bool arrays from interface blocks 178617a3babSopenharmony_ci* Generate separate stores for partially swizzled memory stores 179617a3babSopenharmony_ci* Allow layout(std430) uniform with GL_EXT_scalar_block_layout 180617a3babSopenharmony_ci* Support for pragma STDGL invariant(all) 181617a3babSopenharmony_ci* Support for GL_NV_ray_tracing_motion_blur 182617a3babSopenharmony_ci 183617a3babSopenharmony_ci## 11.5.0 2021-06-23 184617a3babSopenharmony_ci 185617a3babSopenharmony_ci### Other changes 186617a3babSopenharmony_ci* Implement GLSL_EXT_shader_atomic_float2 187617a3babSopenharmony_ci* Implement GL_EXT_spirv_intrinsics 188617a3babSopenharmony_ci* Fixed SPIR-V remapper not remapping OpExtInst instruction set IDs 189617a3babSopenharmony_ci* only declare compatibility gl_ variables in compatibility mode 190617a3babSopenharmony_ci* Add support for float spec const vector initialization 191617a3babSopenharmony_ci* Implement GL_EXT_subgroup_uniform_control_flow. 192617a3babSopenharmony_ci* Fix arrays dimensioned with spec constant sized gl_WorkGroupSize 193617a3babSopenharmony_ci* Add support for 64bit integer scalar and vector types to bitCount() builtin 194617a3babSopenharmony_ci 195617a3babSopenharmony_ci## 11.4.0 2021-04-22 196617a3babSopenharmony_ci 197617a3babSopenharmony_ci### Other changes 198617a3babSopenharmony_ci* Fix to keep source compatible with CMake 3.10.2 199617a3babSopenharmony_ci 200617a3babSopenharmony_ci## 11.3.0 2021-04-21 201617a3babSopenharmony_ci 202617a3babSopenharmony_ci### Other changes 203617a3babSopenharmony_ci* Added --depfile 204617a3babSopenharmony_ci* Added --auto-sampled-textures 205617a3babSopenharmony_ci* Now supports InterpolateAt-based functions 206617a3babSopenharmony_ci* Supports cross-stage automatic IO mapping 207617a3babSopenharmony_ci* Supports GL_EXT_vulkan_glsl_relaxed (-R option) 208617a3babSopenharmony_ci 209617a3babSopenharmony_ci## 11.2.0 2021-02-18 210617a3babSopenharmony_ci 211617a3babSopenharmony_ci### Other changes 212617a3babSopenharmony_ci* Removed Python requirement when not building with spirv-tools 213617a3babSopenharmony_ci* Add support for GL_EXT_shared_memory_block 214617a3babSopenharmony_ci* Implement GL_EXT_null_initializer 215617a3babSopenharmony_ci* Add CMake support for Fuschia 216617a3babSopenharmony_ci 217617a3babSopenharmony_ci## 11.1.0 2020-12-07 218617a3babSopenharmony_ci 219617a3babSopenharmony_ci### Other changes 220617a3babSopenharmony_ci* Added ray-tracing extension support 221617a3babSopenharmony_ci 222617a3babSopenharmony_ci## 11.0.0 2020-07-20 223617a3babSopenharmony_ci 224617a3babSopenharmony_ci### Breaking changes 225617a3babSopenharmony_ci 226617a3babSopenharmony_ci#### Visual Studio 2013 is no longer supported 227617a3babSopenharmony_ci 228617a3babSopenharmony_ci[As scheduled](https://github.com/KhronosGroup/glslang/blob/9eef54b2513ca6b40b47b07d24f453848b65c0df/README.md#planned-deprecationsremovals), 229617a3babSopenharmony_ciMicrosoft Visual Studio 2013 is no longer officially supported. Please upgrade 230617a3babSopenharmony_cito at least Visual Studio 2015. 231617a3babSopenharmony_ci 232617a3babSopenharmony_ci## 10.15.3847 2020-07-20 233617a3babSopenharmony_ci 234617a3babSopenharmony_ci### Breaking changes 235617a3babSopenharmony_ci 236617a3babSopenharmony_ci* The following files have been removed: 237617a3babSopenharmony_ci * `glslang/include/revision.h` 238617a3babSopenharmony_ci * `glslang/include/revision.template` 239617a3babSopenharmony_ci 240617a3babSopenharmony_ciThe `GLSLANG_MINOR_VERSION` and `GLSLANG_PATCH_LEVEL` defines have been removed 241617a3babSopenharmony_cifrom the public headers. \ 242617a3babSopenharmony_ciInstead each build script now uses the new `build_info.py` 243617a3babSopenharmony_ciscript along with the `build_info.h.tmpl` and this `CHANGES.md` file to generate 244617a3babSopenharmony_cithe glslang build-time generated header `glslang/build_info.h`. 245617a3babSopenharmony_ci 246617a3babSopenharmony_ciThe new public API to obtain the `glslang` version is `glslang::GetVersion()`. 247617a3babSopenharmony_ci 248617a3babSopenharmony_ci### Other changes 249617a3babSopenharmony_ci* `glslang` shared objects produced by CMake are now `SONAME` versioned using 250617a3babSopenharmony_ci [Semantic Versioning 2.0.0](https://semver.org/). 251