mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-10 03:28:18 +02:00
Recent changes to continue handling in loops results in many cases of
loop {
...
if (...) {
do_continue = true; // was continue;
}
i = do_continue ? i : i + 1;
}
I noticed this while investigating mesa#15154. Unfortunately, this
doesn't fix the performance regressions noted in that issue.
One fragment shader in XCOM: Enemy Unknown doesn't like this change. :(
v2: Drop _nsz from a couple bcsel patterns where it is not needed.
Suggested by Georg.
v3: Drop ~ from the last two fadd patterns. Suggested by Georg. Update
expected checksum for plot3d-v2.trace on many platforms.
shader-db:
All Iris platforms had similar results. (Lunar Lake shown)
total instructions in shared programs: 17089936 -> 17086837 (-0.02%)
instructions in affected programs: 864928 -> 861829 (-0.36%)
helped: 696 / HURT: 110
total cycles in shared programs: 864096306 -> 863913752 (-0.02%)
cycles in affected programs: 345726340 -> 345543786 (-0.05%)
helped: 620 / HURT: 196
total spills in shared programs: 3318 -> 3319 (0.03%)
spills in affected programs: 14 -> 15 (7.14%)
helped: 0 / HURT: 1
total fills in shared programs: 1604 -> 1606 (0.12%)
fills in affected programs: 28 -> 30 (7.14%)
helped: 0 / HURT: 1
total sends in shared programs: 876852 -> 876850 (<.01%)
sends in affected programs: 6 -> 4 (-33.33%)
helped: 2 / HURT: 0
fossil-db:
Lunar Lake
Totals:
Instrs: 914468779 -> 914215874 (-0.03%); split: -0.03%, +0.00%
CodeSize: 12885732160 -> 12881939568 (-0.03%); split: -0.04%, +0.01%
Cycle count: 100100279922 -> 100096866800 (-0.00%); split: -0.05%, +0.04%
Spill count: 3459786 -> 3459693 (-0.00%); split: -0.01%, +0.01%
Fill count: 4909835 -> 4909177 (-0.01%); split: -0.04%, +0.03%
Max live registers: 191819298 -> 191822052 (+0.00%); split: -0.00%, +0.00%
Max dispatch width: 48511264 -> 48510608 (-0.00%); split: +0.00%, -0.00%
Non SSA regs after NIR: 136334891 -> 136301926 (-0.02%); split: -0.03%, +0.00%
Totals from 37416 (1.87% of 2003390) affected shaders:
Instrs: 53346249 -> 53093344 (-0.47%); split: -0.48%, +0.01%
CodeSize: 775396384 -> 771603792 (-0.49%); split: -0.60%, +0.11%
Cycle count: 32275003526 -> 32271590404 (-0.01%); split: -0.14%, +0.13%
Spill count: 569304 -> 569211 (-0.02%); split: -0.05%, +0.03%
Fill count: 620240 -> 619582 (-0.11%); split: -0.31%, +0.21%
Max live registers: 6712048 -> 6714802 (+0.04%); split: -0.01%, +0.05%
Max dispatch width: 893344 -> 892688 (-0.07%); split: +0.10%, -0.17%
Non SSA regs after NIR: 7191473 -> 7158508 (-0.46%); split: -0.49%, +0.03%
Meteor Lake and DG2 had similar results. (Meteor Lake shown)
Totals:
Instrs: 985625036 -> 985366432 (-0.03%); split: -0.03%, +0.00%
CodeSize: 16446268768 -> 16442606864 (-0.02%); split: -0.03%, +0.01%
Cycle count: 91278956920 -> 91272371300 (-0.01%); split: -0.07%, +0.06%
Spill count: 3713935 -> 3714003 (+0.00%); split: -0.00%, +0.00%
Fill count: 5001514 -> 5001259 (-0.01%); split: -0.03%, +0.02%
Max live registers: 120736970 -> 120738919 (+0.00%); split: -0.00%, +0.00%
Max dispatch width: 37827808 -> 37829472 (+0.00%); split: +0.01%, -0.00%
Non SSA regs after NIR: 160606595 -> 160573270 (-0.02%); split: -0.02%, +0.00%
Totals from 38664 (1.71% of 2265137) affected shaders:
Instrs: 53621392 -> 53362788 (-0.48%); split: -0.49%, +0.01%
CodeSize: 932994544 -> 929332640 (-0.39%); split: -0.52%, +0.13%
Cycle count: 24442489628 -> 24435904008 (-0.03%); split: -0.25%, +0.22%
Spill count: 550952 -> 551020 (+0.01%); split: -0.02%, +0.03%
Fill count: 525010 -> 524755 (-0.05%); split: -0.27%, +0.23%
Max live registers: 3594805 -> 3596754 (+0.05%); split: -0.01%, +0.07%
Max dispatch width: 510928 -> 512592 (+0.33%); split: +0.47%, -0.14%
Non SSA regs after NIR: 7652247 -> 7618922 (-0.44%); split: -0.46%, +0.03%
Tiger Lake, Ice Lake, and Skylake had similar results. (Tiger Lake shown)
Totals:
Instrs: 997905938 -> 997771670 (-0.01%); split: -0.01%, +0.00%
CodeSize: 13990460928 -> 13988346016 (-0.02%); split: -0.02%, +0.00%
Cycle count: 83465002175 -> 83456829524 (-0.01%); split: -0.02%, +0.01%
Spill count: 3815020 -> 3814879 (-0.00%); split: -0.01%, +0.00%
Fill count: 6561078 -> 6560768 (-0.00%); split: -0.01%, +0.00%
Max live registers: 121468149 -> 121468160 (+0.00%); split: -0.00%, +0.00%
Max dispatch width: 37914400 ->
|
||
|---|---|---|
| .. | ||
| angle-anv-adl-slow-skips.txt | ||
| angle-anv-jsl-fails.txt | ||
| angle-anv-jsl-flakes.txt | ||
| angle-anv-tgl-flakes.txt | ||
| anv-adl-fails.txt | ||
| anv-adl-flakes.txt | ||
| anv-adl-skips.txt | ||
| anv-adl-vkd3d-fails.txt | ||
| anv-jsl-fails.txt | ||
| anv-jsl-flakes.txt | ||
| anv-jsl-skips.txt | ||
| anv-jsl-slow-skips.txt | ||
| anv-rpl-fails.txt | ||
| anv-rpl-flakes.txt | ||
| anv-skips.txt | ||
| anv-tgl-fails.txt | ||
| anv-tgl-flakes.txt | ||
| anv-tgl-skips.txt | ||
| deqp-anv-adl-angle.toml | ||
| deqp-anv-adl-full.toml | ||
| deqp-anv-adl.toml | ||
| deqp-anv-fluster.toml | ||
| deqp-anv-jsl-angle-full.toml | ||
| deqp-anv-jsl-angle.toml | ||
| deqp-anv-jsl-full.toml | ||
| deqp-anv-jsl.toml | ||
| deqp-anv-rpl.toml | ||
| deqp-anv-tgl-angle-full.toml | ||
| deqp-anv-tgl-angle.toml | ||
| deqp-anv-tgl-full.toml | ||
| deqp-anv-tgl.toml | ||
| deqp-hasvk-hsw.toml | ||
| deqp-intel-adl-cl.toml | ||
| deqp-intel-adl-skqp.toml | ||
| deqp-intel-tgl-skqp.toml | ||
| deqp-intel-whl-skqp.toml | ||
| deqp-iris-adl.toml | ||
| deqp-iris-amly-egl.toml | ||
| deqp-iris-amly.toml | ||
| deqp-iris-apl-egl.toml | ||
| deqp-iris-apl-glk.toml | ||
| deqp-iris-apl.toml | ||
| deqp-iris-cml.toml | ||
| deqp-iris-glk-egl.toml | ||
| deqp-iris-glk.toml | ||
| deqp-iris-jsl.toml | ||
| deqp-iris-kbl-piglit.toml | ||
| deqp-iris-kbl.toml | ||
| deqp-iris-whl.toml | ||
| gitlab-ci-inc.yml | ||
| gitlab-ci.yml | ||
| hasvk-hsw-fails.txt | ||
| hasvk-hsw-flakes.txt | ||
| hasvk-hsw-skips.txt | ||
| intel-adl-fails.txt | ||
| intel-adl-flakes.txt | ||
| intel-tgl-flakes.txt | ||
| iris-adl-flakes.txt | ||
| iris-adl-skips.txt | ||
| iris-amly-flakes.txt | ||
| iris-amly-skips.txt | ||
| iris-apl-flakes.txt | ||
| iris-apl-skips.txt | ||
| iris-cml-fails.txt | ||
| iris-cml-flakes.txt | ||
| iris-glk-fails.txt | ||
| iris-glk-flakes.txt | ||
| iris-glk-skips.txt | ||
| iris-jsl-fails.txt | ||
| iris-jsl-flakes.txt | ||
| iris-jsl-skips.txt | ||
| iris-kbl-fails.txt | ||
| iris-kbl-flakes.txt | ||
| iris-kbl-skips.txt | ||
| iris-skips.txt | ||
| iris-whl-fails.txt | ||
| iris-whl-flakes.txt | ||
| traces-intel-restricted.toml | ||
| traces-iris.yml | ||