Revision history for SPIRV-Tools

v2016.4-dev 2016-08-24
 - Start v2016.4

v2016.3 2016-08-24
 - Add target environment enums for OpenCL 2.1, OpenCL 2.2,
   OpenGL 4.0, OpenGL 4.1, OpenGL 4.2, OpenGL 4.3, OpenGL 4.5.
 - Add spirv-cfg, an experimental tool to dump the control flow graph
   as a GraphiViz "dot" graph
 - Add optimization pass: Eliminate dead constants.
 - Add spirv-lesspipe.sh filter utility
 - Fixes issues:
   #288: Check def-use dominance rules for OpPhi (variable,parent) operands
   #339: Allow OpUndef in types-constants-global-vars section, as required
     by SPIR-V 1.0 Rev7, 1.1 Rev 3.
   #340: Avoid race on mkdir during build
   #365: Relax PointSize, ClipDistance, CullDistance capability check in all
     environments not just Vulkan 1.0.

v2016.2 2016-08-05
 - Validator is incomplete
   - Checks ID use block is dominated by definition block
 - Add optimization passes (in API and spirv-opt command)
   - Strip debug info instructions
   - Freeze spec constant to their default values
 - Allow INotEqual as operation for OpSpecConstantOp
 - Fixes bugs:
   #270: validator: crash when continue construct is unreachable
   #279: validator: infinite loop when analyzing some degenerate control
     flow graphs
   #286: validator: don't incorrectly generate def-use error for
         (variable,parent) parameters to OpPhi
   #290: disassembler: never generate bare % for an identifier
   #295: validator: def-use dominance check should ignore unreachable uses
   #276: validator: allow unreachable continue constructs
   #297: validator: allow an unreachable block to branch to a reachable
         merge block

v2016.1 2016-07-19
 - Fix https://github.com/KhronosGroup/SPIRV-Tools/issues/261
   Turn off ClipDistance and CullDistance capability checks for Vulkan.
 - The disassembler can emit friendly names based on debug info (OpName
   instructions), and will infer somewhat friendly names for most types.
   This is turned on by default for the spirv-dis command line tool.
 - Updated to support SPIR-V 1.1 rev 2
   - Input StorageClass, Sampled1D capability, and SampledBuffer capability
     do not require Shader capability anymore.

v2016.0 2016-07-04

 - Adds v<year>.<index> versioning, with "-dev" indicating
   work in progress.  The intent is to more easly report
   and summarize functionality when SPIRV-Tools is incorporated
   in downstream projects.

 - Summary of functionality (See the README.md for more):
   - Supports SPIR-V 1.1 Rev 1
   - Supports SPIR-V 1.0 Rev 5
   - Supports GLSL std450 extended instructions 1.0 Rev 3
   - Supports OpenCL extended instructions 1.0 Rev 2
   - Assembler, disassembler are complete
     - Supports floating point widths of 16, 32, 64 bits
     - Supports integer widths up to 64 bits
   - Validator is incomplete
     - Checks capability requirements in most cases
     - Checks module layout constraints
     - Checks ID use-definition ordering constraints,
       ignoring control flow
     - Checks some control flow graph rules
   - Optimizer is introduced, with few available transforms.
   - Supported on Linux, OSX, Android, Windows

 - Fixes bugs:
   - #143: OpenCL pow and pown arguments
