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