1 Revision history for SPIRV-Tools
5 #359: Add Emacs helper for automatically diassembling/assembling a SPIR-V
6 binary on file load/save.
8 #414: Validator: Allow OpUndef for composite constants
9 #415: Validator: Phi can use its own value in some cases.
12 - Relicensed under Apache 2.0
13 - Add optimization passes (in API and spirv-opt command)
14 - Fold spec constants defined with OpSpecConstantOp and
15 OpSpecConstantComposite to normal constants with fixed value(s).
17 #318: Relicensed under Apache 2.0
20 - Add target environment enums for OpenCL 2.1, OpenCL 2.2,
21 OpenGL 4.0, OpenGL 4.1, OpenGL 4.2, OpenGL 4.3, OpenGL 4.5.
22 - Add spirv-cfg, an experimental tool to dump the control flow graph
23 as a GraphiViz "dot" graph
24 - Add optimization pass: Eliminate dead constants.
25 - Add spirv-lesspipe.sh filter utility
27 #288: Check def-use dominance rules for OpPhi (variable,parent) operands
28 #339: Allow OpUndef in types-constants-global-vars section, as required
29 by SPIR-V 1.0 Rev7, 1.1 Rev 3.
30 #340: Avoid race on mkdir during build
31 #365: Relax PointSize, ClipDistance, CullDistance capability check in all
32 environments not just Vulkan 1.0.
35 - Validator is incomplete
36 - Checks ID use block is dominated by definition block
37 - Add optimization passes (in API and spirv-opt command)
38 - Strip debug info instructions
39 - Freeze spec constant to their default values
40 - Allow INotEqual as operation for OpSpecConstantOp
42 #270: validator: crash when continue construct is unreachable
43 #279: validator: infinite loop when analyzing some degenerate control
45 #286: validator: don't incorrectly generate def-use error for
46 (variable,parent) parameters to OpPhi
47 #290: disassembler: never generate bare % for an identifier
48 #295: validator: def-use dominance check should ignore unreachable uses
49 #276: validator: allow unreachable continue constructs
50 #297: validator: allow an unreachable block to branch to a reachable
54 - Fix https://github.com/KhronosGroup/SPIRV-Tools/issues/261
55 Turn off ClipDistance and CullDistance capability checks for Vulkan.
56 - The disassembler can emit friendly names based on debug info (OpName
57 instructions), and will infer somewhat friendly names for most types.
58 This is turned on by default for the spirv-dis command line tool.
59 - Updated to support SPIR-V 1.1 rev 2
60 - Input StorageClass, Sampled1D capability, and SampledBuffer capability
61 do not require Shader capability anymore.
65 - Adds v<year>.<index> versioning, with "-dev" indicating
66 work in progress. The intent is to more easly report
67 and summarize functionality when SPIRV-Tools is incorporated
68 in downstream projects.
70 - Summary of functionality (See the README.md for more):
71 - Supports SPIR-V 1.1 Rev 1
72 - Supports SPIR-V 1.0 Rev 5
73 - Supports GLSL std450 extended instructions 1.0 Rev 3
74 - Supports OpenCL extended instructions 1.0 Rev 2
75 - Assembler, disassembler are complete
76 - Supports floating point widths of 16, 32, 64 bits
77 - Supports integer widths up to 64 bits
78 - Validator is incomplete
79 - Checks capability requirements in most cases
80 - Checks module layout constraints
81 - Checks ID use-definition ordering constraints,
83 - Checks some control flow graph rules
84 - Optimizer is introduced, with few available transforms.
85 - Supported on Linux, OSX, Android, Windows
88 - #143: OpenCL pow and pown arguments