Bump actions/checkout from 4.1.3 to 4.1.4
[glslang.git] / CHANGES.md
blob13fa155632121de312e2a8656d26e5d3a9b3c96d
1 # Revision history for `glslang`
3 All notable changes to this project will be documented in this file.
4 This project adheres to [Semantic Versioning](https://semver.org/).
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
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
44 ## 14.0.0 2023-12-21
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.
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
72 ## 13.1.1 2023-10-16
73 * Initialize compile_only field in C interface
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
88 ## 13.0.0 2023-08-23
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
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
104 ## 12.3.1 2023-07-20
106 ### Other changes
107 * Improve backward compatibility for glslangValidator rename on Windows
109 ## 12.3.0 2023-07-19
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
122 ## 12.2.0 2023-05-17
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
135 ## 12.1.0 2023-03-21
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
144 ## 12.0.0 2023-01-18
146 ### Breaking changes
147 * An ABI was accidentally broken in #3014. Consequently, we have incremented the major revision number.
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.
157 ## 11.13.0 2022-12-06
159 ### Other changes
160 * Make HelperInvocation accesses volatile for SPIR-V 1.6.
161 * Improve forward compatibility of ResourceLimits interface 
162 * Remove GLSLANG_ANGLE
164 ## 11.12.0 2022-10-12
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
175 ## 11.11.0 2022-08-11
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
182 ## 11.10.0 2022-06-02
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
190 ## 11.9.0 2022-04-06
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
198 ## 11.8.0 2022-01-27
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
205 ## 11.7.0 2021-11-11
207 ### Other changes
208 * Add support for targeting Vulkan 1.2 in the C API
210 ## 11.6.0 2021-08-25
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
221 ## 11.5.0 2021-06-23
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
233 ## 11.4.0 2021-04-22
235 ### Other changes
236 * Fix to keep source compatible with CMake 3.10.2
238 ## 11.3.0 2021-04-21
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)
247 ## 11.2.0 2021-02-18
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
255 ## 11.1.0 2020-12-07
257 ### Other changes
258 * Added ray-tracing extension support
260 ## 11.0.0 2020-07-20
262 ### Breaking changes
264 #### Visual Studio 2013 is no longer supported
266 [As scheduled](https://github.com/KhronosGroup/glslang/blob/9eef54b2513ca6b40b47b07d24f453848b65c0df/README.md#planned-deprecationsremovals),
267 Microsoft Visual Studio 2013 is no longer officially supported. Please upgrade
268 to at least Visual Studio 2015.
270 ## 10.15.3847 2020-07-20
272 ### Breaking changes
274 * The following files have been removed:
275   * `glslang/include/revision.h`
276   * `glslang/include/revision.template`
278 The `GLSLANG_MINOR_VERSION` and `GLSLANG_PATCH_LEVEL` defines have been removed
279 from the public headers. \
280 Instead each build script now uses the new `build_info.py`
281 script along with the `build_info.h.tmpl` and this `CHANGES.md` file to generate
282 the glslang build-time generated header `glslang/build_info.h`.
284 The new public API to obtain the `glslang` version is `glslang::GetVersion()`.
286 ### Other changes
287 * `glslang` shared objects produced by CMake are now `SONAME` versioned using
288    [Semantic Versioning 2.0.0](https://semver.org/).