mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 15:10:12 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
We want to model soft dependencies, but because of how there's only a single bit to wait on all of them, there may be unnecessary delays inserted when a (sy)-consumer follows an unrelated (sy)-producer. Previously there was some code to try to work around this, but we can just model it directly using the sfu_delay and tex_delay cycle counts that we have to maintain anyway and delete it. This also gets rid of the calls to ir3_delay_postra with soft=true which would be more complicated to handle in the next commit. There is a functional change here: the idea of preferring less nop's over critical path length (max_delay) up to 3 nops is kept (and we delete the TODO which is already sort-of resolved by it), but delays due to (ss)/(sy) and nops are now treated equally, rather than always preferring nops over syncs. So if our estimate indicates that scheduling an (ss) consumer will result in a wait of one cycle and there's another instruction that will require one nop, we will treat them otherwise equal and choose based on max_delay instead. This results in more sstall, but the decrease in nops is much greater. total nops in shared programs: 376613 -> 345482 (-8.27%) nops in affected programs: 275483 -> 244352 (-11.30%) helped: 3226 HURT: 110 helped stats (abs) min: 1 max: 78 x̄: 9.73 x̃: 7 helped stats (rel) min: 0.19% max: 100.00% x̄: 19.48% x̃: 13.68% HURT stats (abs) min: 1 max: 16 x̄: 2.43 x̃: 2 HURT stats (rel) min: 0.00% max: 150.00% x̄: 13.34% x̃: 4.36% 95% mean confidence interval for nops value: -9.61 -9.06 95% mean confidence interval for nops %-change: -19.01% -17.78% Nops are helped. total sstall in shared programs: 126195 -> 133806 (6.03%) sstall in affected programs: 79440 -> 87051 (9.58%) helped: 300 HURT: 1922 helped stats (abs) min: 1 max: 15 x̄: 4.72 x̃: 4 helped stats (rel) min: 1.05% max: 100.00% x̄: 17.15% x̃: 14.55% HURT stats (abs) min: 1 max: 29 x̄: 4.70 x̃: 4 HURT stats (rel) min: 0.00% max: 900.00% x̄: 25.38% x̃: 10.53% 95% mean confidence interval for sstall value: 3.22 3.63 95% mean confidence interval for sstall %-change: 17.50% 21.78% Sstall are HURT. total (ss) in shared programs: 35190 -> 35472 (0.80%) (ss) in affected programs: 6433 -> 6715 (4.38%) helped: 163 HURT: 401 helped stats (abs) min: 1 max: 2 x̄: 1.06 x̃: 1 helped stats (rel) min: 1.92% max: 33.33% x̄: 11.53% x̃: 10.00% HURT stats (abs) min: 1 max: 3 x̄: 1.13 x̃: 1 HURT stats (rel) min: 1.56% max: 100.00% x̄: 15.33% x̃: 12.50% 95% mean confidence interval for (ss) value: 0.41 0.59 95% mean confidence interval for (ss) %-change: 6.22% 8.93% (ss) are HURT. total (sy) in shared programs: 13476 -> 13521 (0.33%) (sy) in affected programs: 669 -> 714 (6.73%) helped: 30 HURT: 78 helped stats (abs) min: 1 max: 2 x̄: 1.13 x̃: 1 helped stats (rel) min: 4.00% max: 50.00% x̄: 21.22% x̃: 21.11% HURT stats (abs) min: 1 max: 2 x̄: 1.01 x̃: 1 HURT stats (rel) min: 3.45% max: 100.00% x̄: 31.93% x̃: 25.00% 95% mean confidence interval for (sy) value: 0.23 0.60 95% mean confidence interval for (sy) %-change: 11.19% 23.15% (sy) are HURT. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13722> |
||
|---|---|---|
| .gitlab/issue_templates | ||
| .gitlab-ci | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| src | ||
| subprojects | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .mailmap | ||
| .travis.yml | ||
| CODEOWNERS | ||
| meson.build | ||
| meson_options.txt | ||
| README.rst | ||
| VERSION | ||
`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://mesa3d.org/install.html>`_), but the recommended way is to use Meson (`docs/meson.rst <https://mesa3d.org/meson.html>`_): .. code-block:: sh $ mkdir build $ cd build $ meson .. $ sudo ninja 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://mesa3d.org/bugs.html>`_). Contributing ------------ Contributions are welcome, and step-by-step instructions can be found in our documentation (`docs/submittingpatches.rst <https://mesa3d.org/submittingpatches.html>`_). Note that Mesa uses gitlab for patches submission, review and discussions.