diff options
author | Jason Ekstrand <[email protected]> | 2018-08-07 15:47:54 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-08-17 10:50:28 -0500 |
commit | d9ea015ced39bab7fb32cc772307c4fb647403bd (patch) | |
tree | 00af3fbac7c188a801f5eee67ae3a6d8eb5284b7 /scons | |
parent | f210a5f4bb868ad5ae70c5fb3912f3a241305666 (diff) |
anv/pipeline: Lower pipeline layouts etc. after linking
This allows us to use the link-optimized shader for determining binding
table layouts and, more importantly, URB layouts. For apps running on
DXVK, this is extremely important as DXVK likes to declare max-size
inputs and outputs and this lets is massively shrink our URB space
requirements.
VkPipeline-db results (Batman pipelines only) on KBL:
total instructions in shared programs: 820403 -> 790008 (-3.70%)
instructions in affected programs: 273759 -> 243364 (-11.10%)
helped: 622
HURT: 42
total spills in shared programs: 8449 -> 5212 (-38.31%)
spills in affected programs: 3427 -> 190 (-94.46%)
helped: 607
HURT: 2
total fills in shared programs: 11638 -> 6067 (-47.87%)
fills in affected programs: 5879 -> 308 (-94.76%)
helped: 606
HURT: 3
Looking at shaders by hand, it makes the URB between TCS and TES go from
containing 32 per-vertex varyings per tessellation shader pair to a more
reasonable 8-12. For a 3-vertex patch, that's at least half the URB
space no matter how big the patch section is.
Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'scons')
0 files changed, 0 insertions, 0 deletions