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