Revision history for SPIRV-Tools
-v2017.3-dev 2017-12-15
- - Start v2017.3-dev
+v2017.3 2018-01-12
- General:
- - Generate a SPIRV-Tools.pc file for pkg-config
+ - Support DebugInfo extended instruction set, targeted at OpenCL environments.
+ See the SPIR-V Registry.
+ - Generate a SPIRV-Tools.pc file for pkg-config.
- Optimizer:
- - Add Private-to-Function variable conversion for modules with logical
- addressing
- - Add --legalize-hlsl option to run transforms used to transform intermediate
- code generated by HLSL to SPIR-V for Vulkan compilers. Those compilers
- normally run these transforms automatically. This option is used for developing
- those transforms.
+ - Progress for legalization of code generated from HLSL (issue #1118):
+ - Add --legalize-hlsl option to run transforms used to transform intermediate
+ code generated by HLSL to SPIR-V for Vulkan compilers. Those compilers
+ normally run these transforms automatically. This option is used for developing
+ those transforms.
+ - Add Private-to-Function variable conversion for modules with logical
+ addressing.
+ - Add --ccp: SSA Conditional Constant Propagation (CCP)
+ - Add --print-all to show disassembly for each optimization pass.
+ - Internal: Add loop descriptors and post-order tree iterator.
+ - Generalized dead branch elimination
+ - Aggressive dead code elimination (ADCE) now removes dead functions and
+ module-scope variables.
+ - Vector extract/insert elimination now optimizes through some cases of
+ VectorShuffle, and GLSL.std.450 Mix extended instruction.
- Validator:
+ - Add validation for GLSL.std.450 extended instruction set.
+ - Check out of bounds composite accesses, where that's statically computable.
+ Fixes #1112.
- Check upper bits of literal numbers that aren't a multiple of 32-bits wide.
- More validation of primitive instructions
+ - Add optional "relaxed" checking logical addressing mode to permit some
+ cases of pointer-to-pointer. Contributes to HLSL legalization (issue #1118).
- Fixes:
#1100: Validator: Image operand Sample can be used with OpImageSparseFetch,
- OpImageSparseRead
+ OpImageSparseRead.
#1108: Remove duplicates transform was incorrectly removing non-duplicate
decorations.
- #1111: Optimizer's type manager could reference deleted memory
+ #1111: Optimizer's type manager could reference deleted memory.
+ #1112: Fix decoration equality check, e.g. it is now symmetric.
+ #1129: Validator now disallows Dim=SupbassData for OpImageSparseRead.
+ #1143: Fix CCP: Was generating incorrect code for loops.
+ #1153: Fix CCP crash.
+ #1154: Optimizer's internal instruction-to-block mappings were sometimes
+ inconsistent.
+ #1159: Fix CCP infinite loop.
+ #1168: Fix dead branch elimination intermittently generating incorrect code.
+ Fixes https://github.com/KhronosGroup/glslang/issues/1205
+ #1186: Fix validation of PackDouble2x32 and UnpackDouble2x32
v2017.2 2017-12-15
- General: