From 1ccfb5803a1bec58c1ceafc5944930dd8350c281 Mon Sep 17 00:00:00 2001 From: David Neto Date: Fri, 15 Dec 2017 18:21:55 -0500 Subject: [PATCH] Finalize v2017.2 --- CHANGES | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 7162ffe43..4816c3bf2 100644 --- a/CHANGES +++ b/CHANGES @@ -1,14 +1,61 @@ Revision history for SPIRV-Tools -v2017.2-dev 2017-11-23 - - Start v2017.2-dev +v2017.2 2017-12-15 + - General: + - Support OpenCL 1.2, 2.0 target environments, including embedded profiles + - Add CONTRIBUTING.md + - Fix exit status code for spirv-link + - Disassember: Enable emitting ANSI colour codes to a string + - Library avoids polluting global namespace. The libraries can export C and C++ + symbols starting with "spv", or in a C++ namespace. Add a test for this. + - Linux release builds include debug information, for easier profiling + - Build bots no longer test VisualStudio 2013 + - Testing dependency RE2 requires VisualStudio 2015 or later + - Build bots check code formatting - Optimizer: - - Adding dominance analysis + - Add --skip-validation to spirv-opt + - Add dominance tree analysis + - Add generic value propagation engine + - Add global redundancy elimination within a function + - Add scalar replacement of function-scope variables of composite type + - Aggressive dead code elimination: Remove empty loops + - Killing an instruction notifies the IRContext + - IRContext::KillInst deletes the instruction + - Move CFG analysis to IRContext + - Add constant manager + - Fix: Don't consider derivative instructions as combinators. + - Fix: Don't delete an instruction twice in local dead-code-elimination + - Fix: Don't consider derivative instructions as combinators. + - Validator: + - Finish checking of image instructions (Section 3.32.10) + - Check sparse image instructions + - Check OpTypeImage, OpTypeSampleImage + - Check composite instructions (Section 3.32.12) + - Check atomic instructions (Section 3.32.18) + - Check OpEmitStreamVertex, OpEndStreamPrimitive instructions + - Re-enable validation of OpCopyObject + - OpKill, image ImplicitLod and QueryLod instructions can only be used in Fragment + shaders. + - Fixes for image instruction validation: + - Lod image operand only usable with ExplicitLod and OpImageFetch + - ExplicitLod Lod image operand must be float scalar + - OpImageFectch Lod image operand must be int scalar + - OpImageGather component operand must be 32-bits (integer scalar) + - OpImageQuerySizeLod Lod must be integer scalar - Fixes: + #622: Remove names and decorations when inlining + #989: Aggressive dead code elim: Don't optimize away live breaks from a loop + #991: Fix validation of SPV_AMD_shader_ballot #1004: Use after free of an instruction, in remove-duplicates transform #1007: OpImageRead not required to return 4-component vector #1009: OpImageRead can return scalar int/float types - #1011: OpImageRead should allow scalar int/float texel types + #1011: OpImageWrite should allow scalar int/float texel types + #1012: Fix validat Dref type check + #1017: Load-store elimination considers variable initializations + #1034: Fix Windows debug build: operator< should be a weak ordering + #1083: Inlining: Set parent (function) for each inlined basic block. + #1075: Aggressive dead code elimination: Was leaving dangling references to + removed blocks. v2017.1 2017-11-23 - Update README with details on the public_spirv_tools_dev@khronos.org mailing list.