Revision history for SPIRV-Tools v2016.3-dev 2016-08-11 - Start v2016.3 - 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. - Fixes issues: #288: Check def-use dominance rules for OpPhi (variable,parent) operands #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. 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