Unify statistics reporting between GL and Vulkan
We've done a bunch of different stuff over the hears when it comes to data reporting and it'd be nice if we could gather it all together and everyone get the benefit. In particular, we probably want some sort of "shader stats" python module with all the goodness in it so that it can be shared by the different report things. We'll also need some sort of standard way to marshal the data through from the GL and fossilize runners.
To be clear, I don't think that we necessarily want everyone to be identical but if we have a standard place to put things based on a reasonable data marshalling mechanism, it makes it easier for us to steal from each other. When it comes to data marshalling, I think we likely want it to look quite a bit like the Vulkan mechanism where we basically have a (app, pipeline, shader)
tuple to describe each shader where "FS SIMD8" and "FS SIMD16" are different shaders. Whether it's just a tuple or some sort of object hierarchy, I don't care; do what makes sense.
Some neat things I'd like to see everyone have:
Statistical analysis of changes
Ian added this some time ago, and it's pretty nifty:
total cycles in shared programs: 334515564 -> 330980035 (-1.06%)
cycles in affected programs: 229339295 -> 225803766 (-1.54%)
helped: 10884
HURT: 6133
helped stats (abs) min: 1 max: 103036 x̄: 350.41 x̃: 42
helped stats (rel) min: <.01% max: 68.38% x̄: 5.89% x̃: 2.79%
HURT stats (abs) min: 1 max: 6160 x̄: 45.38 x̃: 6
HURT stats (rel) min: <.01% max: 82.58% x̄: 1.99% x̃: 0.53%
95% mean confidence interval for cycles value: -257.12 -158.41
95% mean confidence interval for cycles %-change: -3.18% -2.92%
Cycles are helped.
Currently, it's only in the GL report and not in any of the vulkan report stuff.
Per-app reporting
The RADV fossilize-report tool has this and it's nifty:
PERCENTAGE DELTAS Shaders SGPRs VGPRs SpillSGPR SpillVGPR PrivVGPR Scratch CodeSize MaxWaves VClause Instrs
battlefront2 4566 0.14 % -0.02 % . . . . -0.41 % . -0.10 % -0.49 %
britannia 465 0.05 % 0.06 % . . . . -0.24 % -0.03 % . -0.24 %
dark_souls_3 11975 0.23 % . . . . . -1.79 % . -0.24 % -1.50 %
detroit_become_human 19417 . . . . . . -0.14 % . . -0.11 %
deus_ex_md 8063 -0.01 % . . . . . -0.51 % 0.01 % . -0.57 %
doom 5775 . . . . . . -0.09 % . . -0.09 %
shadowofmordor 2055 0.04 % -1.20 % . . . . -1.55 % 0.75 % . -0.60 %
sottr_demo 5620 -0.07 % -0.25 % . . . . -0.35 % . . -0.44 %
strange_brigade 1412 . . . . . . . . . .
talos 782 -0.02 % 0.03 % . . . . . . . .
thewitness 3150 0.04 % . . . . . -0.08 % . . -0.10 %
threekingdoms 887 -0.05 % . . . . . -0.29 % 0.01 % . -0.35 %
warhammer2 1871 -0.01 % 0.21 % . . . . -0.28 % -0.14 % -0.04 % -0.34 %
worldofwarships 8536 . . . . . . -0.07 % . . -0.10 %
youngblood 843 0.02 % -0.03 % . . . . -0.07 % 0.01 % 0.03 % -0.11 %
--------------------------------------------------------------------------------------------------------------------------------
All affected 28834 0.02 % -0.26 % . . . . -0.72 % 0.38 % -0.11 % -0.68 %
--------------------------------------------------------------------------------------------------------------------------------
Total 111493 . -0.11 % . . . . -0.45 % 0.07 % -0.06 % -0.43 %
I'd love to have that for GL and ANV.
GAINED/LOST statistics
The GL shader runner has gained/lost which we don't have for ANV right now. It'd be good to have those