mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-25 21:10:04 +00:00
109ce225c9
entry_block_to_construct_ maps an entry block to its construct. The key in this map (the entry block) is not unique, and therefore the entry for the continue construct gets overwritten when the selection construct is discovered. Since a given block may be the entry block of different types of constructs, the (basic_block, construct_type) pair should be able to uniquely identify the construct. Adds test: - In this test, a basic block is the entry block of a continue construct as well as the entry block of a selection construct. It can be shown that this unit test would crash without the fix in this PR and passes with the fix in this PR.
123 lines
5.1 KiB
Plaintext
123 lines
5.1 KiB
Plaintext
Revision history for SPIRV-Tools
|
|
|
|
v2016.7-dev 2017-01-06
|
|
- Add build target spirv-tools-vimsyntax to generate spvasm.vim, a SPIR-V
|
|
assembly syntax file for Vim.
|
|
- Fixes:
|
|
#508: Support compilation under CYGWIN
|
|
#517: Fix validation when continue (or case) contstruct is also the head of a
|
|
nested control construct.
|
|
|
|
v2016.6 2016-12-13
|
|
- Published the C++ interface for assembling, disassembling, validation, and
|
|
optimization.
|
|
- Support SPV_KHR_shader_draw_parameters in assembler, disassembler, parser.
|
|
- Validator:
|
|
- Add validator API accepting raw binary words
|
|
- Increased coverage:
|
|
- Checks "Data rules" in Universal Validation Rules, section 2.16.1
|
|
- WIP: Universal Limits.
|
|
- The minimum mandated upper bounds are checked.
|
|
- TODO: Parameterize the validator to allow larger limits accepted by
|
|
a more than minimally capable implementation.
|
|
- OpSampledImage checks
|
|
- OpConstantComposite checks
|
|
- Id bound check
|
|
- Disasssembler:
|
|
- Generates friendly GLSL-based names for more builtin variables
|
|
- Generates friendly names for numeric OpConstant values
|
|
- Vendor tool info extracted from SPIR-V XML registry file.
|
|
- Fixes issues:
|
|
#429: Validator: Allow OpTypeForwardPointer and OpTypeStruct to reference
|
|
undefined IDs
|
|
#482: Validator: OpVariable initializer can be an ID of a module-scope variable
|
|
|
|
v2016.5 2016-09-16
|
|
- Support SPV_KHR_shader_ballot in assembler, disassembler, parser.
|
|
- Disassembler: Generate friendly names for built-in variables.
|
|
- Partial fixes:
|
|
#359: Add Emacs helper for automatically diassembling/assembling a SPIR-V
|
|
binary on file load/save.
|
|
- Fixes:
|
|
#414: Validator: Allow OpUndef for composite constants
|
|
#415: Validator: Phi can use its own value in some cases.
|
|
|
|
v2016.4 2016-09-01
|
|
- Relicensed under Apache 2.0
|
|
- Add optimization passes (in API and spirv-opt command)
|
|
- Fold spec constants defined with OpSpecConstantOp and
|
|
OpSpecConstantComposite to normal constants with fixed value(s).
|
|
- Fixes issues:
|
|
#318: Relicensed under Apache 2.0
|
|
|
|
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
|