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