Commit Graph

35 Commits

Author SHA1 Message Date
Daniel Koch
5154db5183 Implement GL_EXT_fragment_invocation_density
including SPV generation using SPV_EXT_fragment_invocation_density.
This is an alias of the functionality in SPV_NV_shading_rate, and thus in some
cases we can only have one set of the tokens present (switch statements), so
we have picked the EXT version. This required updating the expected test
results for SPV_NV_shading_rate.

Also updated the known-good for spirv-headers so that the validator in
spirv-tools knows about the new extension.
2018-11-26 10:01:58 -05:00
David Neto
2d1739d57a Update to newer SPIRV-Tools, including VK_EXT_scalar_block_layout
Validator has more refined messages about what kind of block layout
rules have been applied.
2018-11-16 16:16:31 -05:00
John Kessenich
30cb924538 Move to next SPIRV-Tools known good. 2018-11-15 23:43:35 -07:00
John Kessenich
75cbfcc278 Update to latest SPIR-V Tools. 2018-11-15 09:57:43 -07:00
Jeff Bolz
02ed310ac3 Rename PCH macro to glslang_pch (to avoid name collision) and update to latest spirv-tools 2018-11-07 09:35:31 -06:00
Ashwin Lele
ff1783db87 Multiple features and misc fixes for final raytracing non experimental version. 2018-10-31 07:55:24 -07:00
John Kessenich
a8453d4bc0 SPIRV-Tools: Move to more recent (higher quality) version. 2018-09-20 14:36:42 -06:00
John Kessenich
aedccf96d2 Update known-good to tools/headers for the Nvidia Turing extensions. 2018-09-20 01:34:14 -06:00
Jeff Bolz
36831c9bad GL_KHR_memory_scope_semantics 2018-09-06 20:36:14 -05:00
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