mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-19 20:50:44 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
This causes the graph coloring allocator to use the optimistic coloring codepath for all nodes whose total Q value exceeds the threshold of 96 GRFs, in order to do a better job at minimizing the register requirement of programs even when they are trivially colorable. At the threshold of 96 GRFs the number of threads available per EU starts decreasing as the number of register blocks requested by the program increases, so decreasing the number of registers can increase performance. That showed up in some test cases as a performance inversion from the enabling of VRT, since the extension of the register set to 256 GRFs has the side effect of making some non-trivially colorable programs trivially colorable, which would cause the register allocator to do a worse job at ordering the (trivial) allocations due to the optimistic coloring path being skipped, leading to increased register use and reduced performance. The following Traci test cases improve significantly as a result of this change (4 iterations, 5% significance): MetroExodus-trace-dx11-2160p-ultra: 1.90% ±0.85% BaldursGate3-trace-dx11-1440p-ultra: 1.47% ±0.38% Palworld-trace-dx11-1080p-med: 1.01% ±0.09% TerminatorResistance-trace-dx11-2160p-ultra: 0.95% ±0.29% Control-trace-dx11-1440p-high: 0.87% ±0.50% Even though lowering the P value threshold is expected to have a cost in compile time theoretically due to the increased use of the slower optimistic path of the graph coloring allocator, this doesn't actually show up in my numbers, my shader-db and fossil-db compile-time numbers don't show any statistically significant change (13 iterations, 5% significance). Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36618> |
||
|---|---|---|
| .ci-farms | ||
| .ci-farms-disabled | ||
| .github/workflows | ||
| .gitlab | ||
| .gitlab-ci | ||
| .marge/hooks | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| licenses | ||
| src | ||
| subprojects | ||
| .clang-format | ||
| .clang-format-ignore | ||
| .clang-format-include | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .graphqlrc.yml | ||
| .mailmap | ||
| .mr-label-maker.yml | ||
| .shellcheckrc | ||
| CODEOWNERS | ||
| meson.build | ||
| meson.options | ||
| README.rst | ||
| rustfmt.toml | ||
| 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://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.