337 lines
12 KiB
Markdown
337 lines
12 KiB
Markdown
# Revision history for `glslang`
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
This project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
|
## 15.0.0 2024-09-23
|
|
### Breaking changes
|
|
* Explicitly export all symbols that are part of the public API and hide other symbols by default
|
|
|
|
### Other changes
|
|
* Allow building glslang without the SPIR-V backend using the new ENABLE_SPIRV build option
|
|
* Add setResourceSetBinding method to the API
|
|
* Add interface to get the GLSL IO mapper and resolver
|
|
* Allow compute derivative modes when the workgroup dimensions are spec constants
|
|
* Improve debug location of branch/return instructions
|
|
* Silence preprocessor '#' error reporting in inactive #if/#ifdef/#elif/#else blocks
|
|
* Apply GLSL memory decorations to top-level OpVariable
|
|
* Move definition of GLSLANG_EXPORT to visibility.h
|
|
* Merge ancillary libraries into main glslang library and stub originals
|
|
* Add public setSourceFile and addSourceText methods to TShader class
|
|
* Add type checks for hitObjectNV
|
|
* Add optimizerAllowExpandedIDBound to SpvOptions
|
|
* Add SpvTools.h back to public headers
|
|
* Add cross-stage check for missing outputs
|
|
* Fix HLSL offsets for non-buffers
|
|
* Add types and functions for IO mapping to API
|
|
* Add function to set preprocessed code to API
|
|
* Add set/get version functions to API
|
|
* Expose setGlobalUniform functions to API
|
|
* Don't emit debug instructions before an OpPhi
|
|
* Add command-line and API option to enable reporting column location for compiler errors
|
|
* Improve location aliasing checks
|
|
* Support constant expression calculated by matrixCompMult
|
|
* Fix crash caused by atomicCounter() use without arguments
|
|
* Fix multi-line function call line numbers
|
|
* Add line info to OpDebugDeclare for function parameters
|
|
* Fix HLSL OpDebugFunction file name
|
|
* Fix duplicate decorations
|
|
* Enable compilation of glslang without thread support for WASI
|
|
|
|
## 14.3.0 2024-06-25
|
|
* Generate vector constructions more efficiently when sizes match
|
|
* Skip identity conversions for 8-bit and 16-bit types
|
|
* Add cmake aliases for public libraries
|
|
* Support ARM extended matrix layout
|
|
* Emit debug info for buffer references
|
|
* Add support for OpExtInstWithForwardRefsKHR
|
|
* Generate SPV_EXT_replicated_compisites when requested by pragma
|
|
* Reuse loads generated for repeated function arguments
|
|
* Fix gl_HitT alias of gl_RayTmax
|
|
* Fix some cases where invalid SPIR-V was being generated when using separate samplers
|
|
* Add back layoutLocation to public API
|
|
|
|
## 14.2.0 2024-05-02
|
|
* Improve checking for location aliasing errors
|
|
* Fix undefined behavior in parser
|
|
* Add bounds check to gl_SampleMask
|
|
* Fix alignment and padding of matrices consuming one vector
|
|
* Remove duplicate SPIR-V decorations
|
|
* Check for exponent overflow in float parser
|
|
* Fix bug in relaxed verification rules
|
|
* Fix disassembly of debugBreak
|
|
* Fix bug when importing SPIR-V extended intruction set
|
|
* Fix issues with the interaction of cooperative_matrix and spirv_intrinsics
|
|
* Support SPV_QCOM_image_processing2
|
|
* Support files with UTF8BOM character
|
|
|
|
## 14.1.0 2024-03-08
|
|
* Add a new --abosute-path command-line option to output absolute paths in error messages
|
|
* Support GL_EXT_control_flow_attributes2
|
|
* Support GL_ARB_shading_language_include
|
|
* Fix HLSL built-in passthrough via inout
|
|
* Enable -Wimplicit-fallthrough and fix warnings
|
|
* Fix -Wmissing_field_initializer warnings
|
|
* Document supported dependencies in known_good.json
|
|
* Clear spirv vector before use
|
|
* Emit debug info for accelerationStructure and rayQuery variables
|
|
* Support NV_shader_atomic_fp16_vector
|
|
* Support GL_EXT_expect_assume_support
|
|
* Allow external control of whether glslang will be tested or installed
|
|
* Improve debug source and line info
|
|
* Support GL_KHR_shader_subgroup_rotate
|
|
* Add SPIRV-Tools-opt dependency if ENABLE_OPT
|
|
* Support EXT_shader_quad_control
|
|
* Add OpAssumeTrueKHR and OpExpectKHR
|
|
* Support GL_EXT_maximal_reconvergence
|
|
* Remove generation of deprecated Target.cmake files
|
|
* Fix array size of gl_SampleMask and gl_SampleMaskIn
|
|
* Support GL_ARB_texture_multisample_extension
|
|
* Emit DebugTypePointer when non-semantic debug info is enabled
|
|
|
|
## 14.0.0 2023-12-21
|
|
|
|
### Breaking changes
|
|
* 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.
|
|
* Only the headers that are part of glslang's public interface are included in the install target.
|
|
* Remove OVERRIDE_MSVCCRT cmake option.
|
|
|
|
### Other changes
|
|
* Fix spv_options initialization
|
|
* Fix line number for OpDebugFunction and OpDebugScope for function
|
|
* Fix SPV_KHR_cooperative_matrix enumerants
|
|
* Fix nullptr crash
|
|
* Fix GL_ARB_shader_storage_buffer_object version
|
|
* Fix interpolant ES error
|
|
* Generate DebugValue for constant arguments
|
|
* Overflow/underflow out-of-range floats to infinity/0.0 respectively
|
|
* Support SV_ViewID keywords for HLSL
|
|
* Implement relaxed rule for opaque struct members
|
|
* Add BUILD_WERROR cmake option
|
|
* Add GLSLANG_TESTS cmake option
|
|
* Always generate OpDebugBasicType for bool type
|
|
* Fix GLSL parsing of '#' when not preceded by space or tab
|
|
* Fix GL_ARB_bindless_texture availability
|
|
* Support GL_EXT_draw_instanced extension
|
|
* Support GL_EXT_texture_array extension
|
|
* Fix conversion of 64-bit unsigned integer constants to bool
|
|
* Output 8-bit and 16-bit capabilities when appropriate for OpSpecConstant
|
|
|
|
## 13.1.1 2023-10-16
|
|
* Initialize compile_only field in C interface
|
|
|
|
## 13.1.0 2023-10-13
|
|
* Support GL_EXT_texture_shadow_lod
|
|
* Support GL_NV_displacement_micromap
|
|
* Fix ByteAddressBuffer when used a function parameter
|
|
* Add more verbose messages if SPIRV-Tools is not found
|
|
* Fix names for explicitly sized types when emitting nonsemantic debug info
|
|
* Emit error for r-value arguments in atomic memory operations
|
|
* Add --no-link option
|
|
* Beautify preprocessor output format
|
|
* Fix race condition in glslangValidator
|
|
* Only set LocalSizeId mode when necessary
|
|
* Don't emit invalid debug info for buffer references
|
|
|
|
## 13.0.0 2023-08-23
|
|
|
|
### Breaking changes
|
|
* Simplify PoolAlloc via thread_local
|
|
* Remove InitializeDLL functions
|
|
* Remove OSDependent TLS functions
|
|
* Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL code paths
|
|
|
|
### Other changes
|
|
* Raise CMAKE minimum to 3.17.2
|
|
* Support GL_KHR_cooperative_matrix
|
|
* Support GL_QCOM_image_processing_support
|
|
* Support outputting each module to a filename with spirv-remap
|
|
* Generate an error when gl_PrimitiveShaderRateEXT is used without enabling the extension
|
|
* Improve layout checking when GL_EXT_spirv_intrinsics is enabled
|
|
|
|
## 12.3.1 2023-07-20
|
|
|
|
### Other changes
|
|
* Improve backward compatibility for glslangValidator rename on Windows
|
|
|
|
## 12.3.0 2023-07-19
|
|
|
|
### Other changes
|
|
* Rename glslangValidator to glslang and create glslangValidator symlink
|
|
* Support HLSL binary literals
|
|
* Add missing initialization members for web
|
|
* Improve push_constant upgrading
|
|
* Fix race condition in spirv remap
|
|
* Support pre and post HLSL qualifier validation
|
|
* Force generateDebugInfo when non-semantic debug info is enabled
|
|
* Exit with error if output file cannot be written
|
|
* Fix struct member buffer reference decorations
|
|
|
|
## 12.2.0 2023-05-17
|
|
|
|
### Other changes
|
|
* Support GLSL_EXT_shader_tile_image
|
|
* Support GL_EXT_ray_tracing_position_fetch
|
|
* Support custom include callbacks via the C API
|
|
* Add preamble-text command-line option
|
|
* Accept variables as parameters of spirv_decorate_id
|
|
* Fix generation of conditionals with a struct result
|
|
* Fix double expansion of macros
|
|
* Fix DebugCompilationUnit scope
|
|
* Improve line information
|
|
|
|
## 12.1.0 2023-03-21
|
|
|
|
### Other changes
|
|
* Reject non-float inputs/outputs for version less than 120
|
|
* Fix invalid BufferBlock decoration for SPIR-V 1.3 and above
|
|
* Add HLSL relaxed-precision float/int matrix expansions
|
|
* Block decorate Vulkan structs with RuntimeArrays
|
|
* Support InterlockedAdd on float types
|
|
|
|
## 12.0.0 2023-01-18
|
|
|
|
### Breaking changes
|
|
* An ABI was accidentally broken in #3014. Consequently, we have incremented the major revision number.
|
|
|
|
### Other changes
|
|
* Add support for ARB_bindless_texture.
|
|
* Add support for GL_NV_shader_invocation_reorder.
|
|
* Fix const parameter debug types when using NonSemantic.Shader.DebugInfo.100.
|
|
* Fix NonSemantic.Shader.DebugInfo.100 disassembly.
|
|
* Fix MaxDualSourceDrawBuffersEXT usage.
|
|
* Fix structure member reference crash.
|
|
|
|
## 11.13.0 2022-12-06
|
|
|
|
### Other changes
|
|
* Make HelperInvocation accesses volatile for SPIR-V 1.6.
|
|
* Improve forward compatibility of ResourceLimits interface
|
|
* Remove GLSLANG_ANGLE
|
|
|
|
## 11.12.0 2022-10-12
|
|
|
|
### Other changes
|
|
* Update generator version
|
|
* Add support for GL_EXT_mesh_shader
|
|
* Add support for NonSemantic.Shader.DebugInfo.100
|
|
* Make OpEmitMeshTasksEXT a terminal instruction
|
|
* Make gl_SubGroupARB a flat in int in Vulkan
|
|
* Add support for GL_EXT_opacity_micromap
|
|
* Add preamble support to C interface
|
|
|
|
## 11.11.0 2022-08-11
|
|
|
|
### Other changes
|
|
* Add OpSource support to C interface
|
|
* Deprecate samplerBuffer for spirv1.6 and later
|
|
* Add support for SPV_AMD_shader_early_and_late_fragment_tests
|
|
|
|
## 11.10.0 2022-06-02
|
|
|
|
### Other changes
|
|
* Generate OpLine before OpFunction
|
|
* Add support for VK_EXT_fragment_shader_barycentric
|
|
* Add whitelist filtering for debug comments in SPIRV-Remap
|
|
* Add support for GL_EXT_ray_cull_mask
|
|
|
|
## 11.9.0 2022-04-06
|
|
|
|
### Other changes
|
|
* Add GLSL version override functionality
|
|
* Add eliminate-dead-input-components to -Os
|
|
* Add enhanced-msgs option
|
|
* Explicitly use Python 3 for builds
|
|
|
|
## 11.8.0 2022-01-27
|
|
|
|
### Other changes
|
|
* Add support for SPIR-V 1.6
|
|
* Add support for Vulkan 1.3
|
|
* Add --hlsl-dx-position-w option
|
|
|
|
## 11.7.0 2021-11-11
|
|
|
|
### Other changes
|
|
* Add support for targeting Vulkan 1.2 in the C API
|
|
|
|
## 11.6.0 2021-08-25
|
|
|
|
### Other changes
|
|
* Atomic memory function only for shader storage block member or shared variable
|
|
* Add support for gl_MaxVaryingVectors for ogl
|
|
* Fix loading bool arrays from interface blocks
|
|
* Generate separate stores for partially swizzled memory stores
|
|
* Allow layout(std430) uniform with GL_EXT_scalar_block_layout
|
|
* Support for pragma STDGL invariant(all)
|
|
* Support for GL_NV_ray_tracing_motion_blur
|
|
|
|
## 11.5.0 2021-06-23
|
|
|
|
### Other changes
|
|
* Implement GLSL_EXT_shader_atomic_float2
|
|
* Implement GL_EXT_spirv_intrinsics
|
|
* Fixed SPIR-V remapper not remapping OpExtInst instruction set IDs
|
|
* only declare compatibility gl_ variables in compatibility mode
|
|
* Add support for float spec const vector initialization
|
|
* Implement GL_EXT_subgroup_uniform_control_flow.
|
|
* Fix arrays dimensioned with spec constant sized gl_WorkGroupSize
|
|
* Add support for 64bit integer scalar and vector types to bitCount() builtin
|
|
|
|
## 11.4.0 2021-04-22
|
|
|
|
### Other changes
|
|
* Fix to keep source compatible with CMake 3.10.2
|
|
|
|
## 11.3.0 2021-04-21
|
|
|
|
### Other changes
|
|
* Added --depfile
|
|
* Added --auto-sampled-textures
|
|
* Now supports InterpolateAt-based functions
|
|
* Supports cross-stage automatic IO mapping
|
|
* Supports GL_EXT_vulkan_glsl_relaxed (-R option)
|
|
|
|
## 11.2.0 2021-02-18
|
|
|
|
### Other changes
|
|
* Removed Python requirement when not building with spirv-tools
|
|
* Add support for GL_EXT_shared_memory_block
|
|
* Implement GL_EXT_null_initializer
|
|
* Add CMake support for Fuschia
|
|
|
|
## 11.1.0 2020-12-07
|
|
|
|
### Other changes
|
|
* Added ray-tracing extension support
|
|
|
|
## 11.0.0 2020-07-20
|
|
|
|
### Breaking changes
|
|
|
|
#### Visual Studio 2013 is no longer supported
|
|
|
|
[As scheduled](https://github.com/KhronosGroup/glslang/blob/9eef54b2513ca6b40b47b07d24f453848b65c0df/README.md#planned-deprecationsremovals),
|
|
Microsoft Visual Studio 2013 is no longer officially supported. Please upgrade
|
|
to at least Visual Studio 2015.
|
|
|
|
## 10.15.3847 2020-07-20
|
|
|
|
### Breaking changes
|
|
|
|
* The following files have been removed:
|
|
* `glslang/include/revision.h`
|
|
* `glslang/include/revision.template`
|
|
|
|
The `GLSLANG_MINOR_VERSION` and `GLSLANG_PATCH_LEVEL` defines have been removed
|
|
from the public headers. \
|
|
Instead each build script now uses the new `build_info.py`
|
|
script along with the `build_info.h.tmpl` and this `CHANGES.md` file to generate
|
|
the glslang build-time generated header `glslang/build_info.h`.
|
|
|
|
The new public API to obtain the `glslang` version is `glslang::GetVersion()`.
|
|
|
|
### Other changes
|
|
* `glslang` shared objects produced by CMake are now `SONAME` versioned using
|
|
[Semantic Versioning 2.0.0](https://semver.org/).
|