Commit Graph

26 Commits

Author SHA1 Message Date
John Kessenich
cc14f2d329 SPV: Add SPIRV-Tools validator. This needs the latest SPIR-Tools. 2018-08-23 13:46:48 -06:00
GregF
1676e73dd2 Update SPIRV-Tools known good.
Includes:

    Update OpPhi instructions after splitting block. (#1783)
    Don't change decorations and names in merge return. (#1777)
    Transform to combine consecutive access chains
    Handle undef literal value in vector shuffle
    Fix block ordering in dead branch elim
    Fix finding constant with particular type. (#1724)
    Fix infinite loop while folding OpVectorShuffle (#1722)
    Fix size error when folding vector shuffle. (#1721)
    Layout validation: Permit {vec3; float} tight packing
2018-08-17 10:56:37 -06:00
GregF
3f05beddc8 Update spirv-tools known good
Includes the following:

Add Vulkan 1.1 capability sets
Don't merge types of resources
Remove stores of undef.
Make sure the constant folder get the correct type.
2018-07-23 11:57:16 -06:00
GregF
ff50b9fbb9 Update spirv-tools known-good
Includes the following spirv-opt improvements:

Preserve inst-to-block and def-use in passes.
Add store for var initializer in inlining.
Handle types with self references.
2018-06-08 11:10:33 -06:00
GregF
b0c42b2884 Update spirv-tools known-good.
Includes:

Fold FMix feeding Extract, and use the simplification pass.
2018-05-31 16:17:18 -06:00
GregF
d2b55801b9 Update spirv-tools known-good
Includes:

Fold divide and multiply by same value.
Allow ADCE to remove more instructions.
Remove dead Workgroup variables in ADCE.
Fold fclamp feeding compare.
Add pass to fold a load feeding an extract.
Remove redundant stores.
SROA: Only create symbols that are loaded.
Get ADCE to handle OpCopyMemory
Remove the limit on struct size in SROA.
2018-05-23 18:56:20 -06:00
GregF
517eabb47d Update spirv-opt known-good
Notably, this includes the following:

- Fix exponential performance of DeadInsertElim
- Constant folding of OpVectorTimesScalar
- Add Vector DCE
- Add store-store elimination to LocalSingleBlockElim
- Improve folding of OpVectorTimesScalar and OpPhi
- Fixes handling of kill and unreachable ops in inlining
2018-05-04 11:22:55 -06:00
GregF
6b5d52a672 Update known-good.
Notably, reduces spirv-opt time and adds folding of OpDot and OpFNegate.
2018-04-25 11:48:51 -06:00
GregF
c51bff8dd9 Update spirv-opt known good
Changes include:
    Fix SSA rewrite for nested loops.
    Add support for two new extensions:
    - SPV_NV_shader_subgroup_partitioned
    - SPV_EXT_descriptor_indexing
    Legalize OpImageTexelPointer
    Copy propagate arrays
2018-04-12 10:39:15 -06:00
greg-lunarg
0b46c1edbf
Merge branch 'master' into kg15 2018-03-26 12:20:43 -06:00
GregF
eecb874c35 Update SPIRV-Tools known good.
Also update spirv-opt recipes.
2018-03-26 12:11:55 -06:00
GregF
c96885f405 Update known_good to SPIR-V 1.3 support 2018-03-09 17:45:57 -07:00
GregF
5778ee4ab3 Update spirv-tools known_good
Contains the following improvements:

Fixes 1341: Atomics (and other instructions with side-effects) removed.
Add folding for redundant add/sub/mul/div/mix operations
Add constant folding rules for floating-point comparison
Add folding of redundant OpSelect insns
Add folding of OpCompositeExtract and OpConstantComposite
2018-02-27 11:26:21 -07:00
David Neto
497d5ffefd Update SPIRV-Tools known-good
One legalization case updated for a renumbered ID
2018-02-09 13:20:45 -05:00
David Neto
d123299281 Update SPIRV-Tools known-good
Update SPIRV-Tools.  Relevant functional changes:
 - Optimizer enhancements:
   - ADCE now removes OpSwitch
   - Block merging occurs in more cases
 - Optimizer fixes:
   - Constant propagation (CCP): support matrix constants
   - #1199: Optimizer: Fix CCP: don't propagate spec constants.
   - #1203: Optimizer: Fix common uniform elim bug introduced by refactoring.
   - #1210: Optimizer: Aggressive dead code elimination: Fix 'break' identification.
   - #1212: Optimizer: Aggressive dead code elimination: Was skipping too many instructions.
   - #1214: Optimizer: Aggressive dead code elimination: Fix infinite loop.
   - #1228: Optimizer: Fix CCP: Handling of varying Phi nodes; was resulting in infinite loop.
   - #1245: Optimizer: Dead branch elimination: Avoid a null pointer dereference.
   - #1250: Optimizer: Dead branch elimination: Avoid spuriously reporting a change.
   - #1262: Support building on VisualStudio 2013 again

Update SPIRV-Headers, with "unified1" directory.

Updated one Glslang legalization test base result due to better block merging.
2018-02-05 14:30:13 -05:00
David Neto
0e58bbd5aa Update known-good spirv-tools.
Optimizations used in HLSL legalization now sweep away unused types.
2018-01-12 12:52:04 -05:00
GregF
ead4bb190f Update known good spirv-tools. Fixes issue #1205. 2018-01-05 11:17:34 -07:00
GregF
72deeb25fe Update spirv-tools known-good. 2017-12-15 11:29:43 -07:00
GregF
3e72d2658d Update spirv-tools known-good
This fixes spirv-tools issue 989 where if-break can be incorrectly
deleted from a loop.
2017-11-30 19:36:16 -07:00
GregF
30d92db011 Update spirv-tools known-good
This includes an enhancement to propagate through nested structs.
2017-11-27 14:41:55 -07:00
GregF
c77da685be Update spirv-tools known good. 2017-11-08 13:56:08 -07:00
GregF
cc80d80d8d Update spirv-tools known-good 2017-10-23 16:48:42 -06:00
GregF
856502cb1b Update spirv-tools known-good 2017-10-16 21:05:13 -06:00
GregF
e2b3616370 Advance spirv-opt known-good to hopefully fix travis multithread failure 2017-09-27 15:46:59 -06:00
GregF
741d1f20ed Pick up latest spirv-tools in attempt to fix travis failures 2017-09-27 15:22:19 -06:00
GregF
cd1f169c6a Enable HLSL legalization
Also added known-good mechanism to fetch latest validated spirv-tools.
Also added -Od and -Os to disable optimizer and optimize for size.

Fetching spirv-tools is optional for both glsl and hlsl. Legalization
of hlsl is done by default if spirv-opt is present at cmake time.
Optimization for glsl is currently done through the option -Os.

Legalization testing is currently only done on four existing shaders.
A separate baseLegalResults directory holds those results. All previous
testing is done with the optimizer disabled.
2017-09-27 15:06:05 -06:00