mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-12-26 17:51:02 +00:00
Update CHANGES
This commit is contained in:
parent
745dd00af9
commit
6a986d02a7
46
CHANGES
46
CHANGES
@ -12,31 +12,69 @@ v2018.3-dev 2018-04-06
|
|||||||
attributes in the "unified1" SPIR-V core grammar.
|
attributes in the "unified1" SPIR-V core grammar.
|
||||||
- Disassembler: Emit more digits on floating point, to reliably reproduce all
|
- Disassembler: Emit more digits on floating point, to reliably reproduce all
|
||||||
significand bits. (Use std::max_digits10 instead of std::digits10)
|
significand bits. (Use std::max_digits10 instead of std::digits10)
|
||||||
|
- Fix compilation for old XCode versions: Explicit construction required for std::set.
|
||||||
- Optimizer:
|
- Optimizer:
|
||||||
- Add --strip-reflect
|
- Add --strip-reflect
|
||||||
- Add --time-report
|
- Add --time-report
|
||||||
|
- Add --loop-fission
|
||||||
|
- Add lop fusion.
|
||||||
|
- Add loop peeling pass and internal utility.
|
||||||
|
- Improve optimizer runtime.
|
||||||
- Merge-return now works with structured control flow.
|
- Merge-return now works with structured control flow.
|
||||||
- New (faster) SSA rewriter to convert local loads and stores to SSA IDs and phis.
|
- New (faster) SSA rewriter to convert local loads and stores to SSA IDs and phis.
|
||||||
Can replace load/store elimination passes.
|
Can replace load/store elimination passes.
|
||||||
- Fix instruction folding case: insertion that feeds and extract, when the extract
|
- Fix instruction folding case: insertion that feeds and extract, when the extract
|
||||||
remains.
|
remains.
|
||||||
|
- Fold OpDot.
|
||||||
|
- Fold OpFNegate.
|
||||||
|
- Fold multply and divide of same value.
|
||||||
|
- Fold FClamp feeding a compare.
|
||||||
|
- Fold OpLoad feeding an extract, to reduce excessive copying. (#1547)
|
||||||
|
- Fold Fmix feeding an extract.
|
||||||
|
- Use simplification pass instead of insert-extract elimination.
|
||||||
|
- Constant fold OpVectorTimesScalar.
|
||||||
- Copy propagate arrays, in simple cases.
|
- Copy propagate arrays, in simple cases.
|
||||||
|
- Aggressive dead code elimination: Can remove more instructions, e.g. derivatives.
|
||||||
|
- Aggressive dead code elimination: Remove Workgroup variables that are written but not read.
|
||||||
- Better handling of OpImageTexelPointer
|
- Better handling of OpImageTexelPointer
|
||||||
- Add loop peeling internal utility.
|
|
||||||
- Initial utilities for scalar evolution.
|
- Initial utilities for scalar evolution.
|
||||||
|
- Add Vector dead code elimination.
|
||||||
|
- Each pass can only run once.
|
||||||
|
- Allow code hosting in if-conversion.
|
||||||
|
- Add external interface for adding a PassToken, so external code can make their own
|
||||||
|
passes.
|
||||||
|
- Fixes:
|
||||||
|
#1404: Don't optimize away the compute compute workgroup size constant.
|
||||||
|
#1407: Remove a bad assertion
|
||||||
|
#1456: Fix bug in SSA rewriter related to variables updated in loops.
|
||||||
|
#1487: Fix long runtime in Dead insertion elimination: Don't revist select phi nodes.
|
||||||
|
#1492: Aggressive dead code elimination can remove OpDecorateStringGOOGLE.
|
||||||
|
#1527: Fix inlining of functions having OpKill and OpUnreachable.
|
||||||
|
#1559: Fix assert failure in reduce-load-size pass.
|
||||||
|
#1556: Aggressive dead code elimination: Fix handling of OpCopyMemory.
|
||||||
- Validator:
|
- Validator:
|
||||||
- Check Vulkan built-in variables
|
- Check Vulkan built-in variables
|
||||||
- Check Vulkan-specific atomic result type rule.
|
- Check Vulkan-specific atomic result type rule.
|
||||||
- Relax control barrier check for SPIR-V 1.3. Fixes #1427
|
- Relax control barrier check for SPIR-V 1.3. Fixes #1427
|
||||||
- Check OpPhi.
|
- Check OpPhi.
|
||||||
|
- Check OpMemoryModel.
|
||||||
- Stop checking sizes derived from spec-constants.
|
- Stop checking sizes derived from spec-constants.
|
||||||
- Re-enable checks for OpUConvert.
|
- Re-enable checks for OpUConvert.
|
||||||
|
- Vulkan: Fix check for PrimitiveId: Permit as Input in fragment shader.
|
||||||
|
- Validate binary version for the given target environment.
|
||||||
|
- Add tests for OpBranch checks.
|
||||||
|
- Vulkan 1.1: Check scope for non-uniform subgroup operations.
|
||||||
|
- Fix checks for SPV_AMD_gpu_shader_int16.
|
||||||
|
- Fix logical layout check for OpDecorateId.
|
||||||
|
- Fix checks for ViewportIndex & Layer for Vulkan and SPV_EXT_shader_viewport_index_layer.
|
||||||
|
- Fixes:
|
||||||
|
#1470: Vulkan: Don't restrict WorkgroupSize to Input storage class.
|
||||||
|
#1469: Vulkan: Permit Subgroup memory scope for Vulkan 1.1.
|
||||||
|
#1472: Per-vertex variable validation fixes.
|
||||||
|
#1483: Valdiate barrier execution scopes for Vulkan 1.1.
|
||||||
- Fixes:
|
- Fixes:
|
||||||
#898: Linker properly removes FuncParamAttr from imported symbols.
|
#898: Linker properly removes FuncParamAttr from imported symbols.
|
||||||
#924, #1174: Fix handling of decoration groups in optimizer, linker.
|
#924, #1174: Fix handling of decoration groups in optimizer, linker.
|
||||||
#1404: Don't optimize away the compute compute workgroup size constant.
|
|
||||||
#1407: Remove a bad assertion
|
|
||||||
#1456: Fix bug in SSA rewriter related to variables updated in loops.
|
|
||||||
|
|
||||||
v2018.2 2018-03-07
|
v2018.2 2018-03-07
|
||||||
- General:
|
- General:
|
||||||
|
Loading…
Reference in New Issue
Block a user