• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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