5ebd76615604ca4a1d2ed84fd1bcad1281106784
We were doing a lot of NIR work repeatedly for each SIMD variant of compute and mesh shaders. Instead, do it once before cloning, and just do one final optimization loop and out-of-SSA for each. fossil-db results on Arc B580: Totals: Instrs: 233771096 -> 233794024 (+0.01%); split: -0.01%, +0.02% Subgroup size: 15922768 -> 15922736 (-0.00%); split: +0.00%, -0.00% Send messages: 12095619 -> 12098234 (+0.02%); split: -0.00%, +0.02% Loop count: 137562 -> 137523 (-0.03%) Cycle count: 32600323744 -> 32667411252 (+0.21%); split: -0.06%, +0.27% Spill count: 540908 -> 542027 (+0.21%); split: -0.07%, +0.28% Fill count: 700938 -> 698983 (-0.28%); split: -0.73%, +0.45% Scratch Memory Size: 37266432 -> 37304320 (+0.10%); split: -0.10%, +0.20% Max live registers: 72691728 -> 72692987 (+0.00%); split: -0.00%, +0.00% Non SSA regs after NIR: 67690309 -> 67688352 (-0.00%); split: -0.01%, +0.00% Totals from 3576 (0.45% of 789301) affected shaders: Instrs: 6932956 -> 6955884 (+0.33%); split: -0.41%, +0.74% Subgroup size: 88816 -> 88784 (-0.04%); split: +0.09%, -0.13% Send messages: 329168 -> 331783 (+0.79%); split: -0.02%, +0.81% Loop count: 8753 -> 8714 (-0.45%) Cycle count: 15153678820 -> 15220766328 (+0.44%); split: -0.14%, +0.58% Spill count: 213751 -> 214870 (+0.52%); split: -0.18%, +0.71% Fill count: 282616 -> 280661 (-0.69%); split: -1.82%, +1.13% Scratch Memory Size: 13056000 -> 13093888 (+0.29%); split: -0.27%, +0.56% Max live registers: 834757 -> 836016 (+0.15%); split: -0.11%, +0.26% Non SSA regs after NIR: 995033 -> 993076 (-0.20%); split: -0.48%, +0.28% Looking at a few of the shaders with substantial instruction count increases, it appears that it is largely due to more loops being unrolled, which is probably actually a good thing. The compile time impact of this patch appears to be negligable. However, doing postprocessing before SIMD cloning allows us to examine the postprocessed SSA-form NIR for improvements in an upcoming patch. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36750>
`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library ====================================================== Source ------ This repository lives at https://gitlab.freedesktop.org/mesa/mesa. Other repositories are likely forks, and code found there is not supported. Build & install --------------- You can find more information in our documentation (`docs/install.rst <https://docs.mesa3d.org/install.html>`_), but the recommended way is to use Meson (`docs/meson.rst <https://docs.mesa3d.org/meson.html>`_): .. code-block:: sh $ meson setup build $ ninja -C build/ $ sudo ninja -C build/ install Support ------- Many Mesa devs hang on IRC; if you're not sure which channel is appropriate, you should ask your question on `OFTC's #dri-devel <irc://irc.oftc.net/dri-devel>`_, someone will redirect you if necessary. Remember that not everyone is in the same timezone as you, so it might take a while before someone qualified sees your question. To figure out who you're talking to, or which nick to ping for your question, check out `Who's Who on IRC <https://dri.freedesktop.org/wiki/WhosWho/>`_. The next best option is to ask your question in an email to the mailing lists: `mesa-dev\@lists.freedesktop.org <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_ Bug reports ----------- If you think something isn't working properly, please file a bug report (`docs/bugs.rst <https://docs.mesa3d.org/bugs.html>`_). Contributing ------------ Contributions are welcome, and step-by-step instructions can be found in our documentation (`docs/submittingpatches.rst <https://docs.mesa3d.org/submittingpatches.html>`_). Note that Mesa uses gitlab for patches submission, review and discussions.
Description
Languages
C
75.5%
C++
17.2%
Python
2.7%
Rust
1.8%
Assembly
1.5%
Other
1%