mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-26 04:40:39 +02:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
Rather than emitting FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD to do block loads that were cacheline aligned, loading entire cachelines at a time, we now rely on NIR passes to group, CSE, and vectorize things into appropriately sized blocks. This means that we'll usually still load a cacheline, but we may load only 32B if we don't actually need anything from the full 64B. Prior to Xe2, this saves us registers, and it ought to save us some bandwidth as well as the response length can be lowered. The cacheline-aligning hack was the main reason not to simply call fs_nir_emit_memory_access(), so now we do that instead, porting yet one more thing to the common memory opcode framework. We unfortunately still emit the old FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD opcode for non-block intrinsics. We'd have to clean up 16-bit handling among other things in order to eliminate this, but we should in the future. fossil-db results on Alchemist for this and the previous patch together: Instrs: 161481888 -> 161297588 (-0.11%); split: -0.12%, +0.01% Subgroup size: 8102976 -> 8103000 (+0.00%) Send messages: 7895489 -> 7846178 (-0.62%); split: -0.67%, +0.05% Cycle count: 16583127302 -> 16703162264 (+0.72%); split: -0.57%, +1.29% Spill count: 72316 -> 67212 (-7.06%); split: -7.25%, +0.19% Fill count: 134457 -> 125970 (-6.31%); split: -6.83%, +0.52% Scratch Memory Size: 4093952 -> 3787776 (-7.48%); split: -7.53%, +0.05% Max live registers: 33037765 -> 32947425 (-0.27%); split: -0.28%, +0.00% Max dispatch width: 5780288 -> 5778536 (-0.03%); split: +0.17%, -0.20% Non SSA regs after NIR: 177862542 -> 178816944 (+0.54%); split: -0.06%, +0.60% In particular, several titles see incredible reductions in spill/fills: Shadow of the Tomb Raider: -65.96% / -65.44% Batman: Arkham City GOTY: -53.49% / -28.57% Witcher 3: -16.33% / -14.29% Total War: Warhammer III: -9.60% / -10.14% Assassins Creed Odyssey: -6.50% / -9.92% Red Dead Redemption 2: -6.77% / -8.88% Far Cry: New Dawn: -7.97% / -4.53% Improves performance in many games on Arc A750: Cyberpunk 2077: 5.8% Witcher 3: 4% Shadow of the Tomb Raider: 3.3% Assassins Creed: Valhalla: 3% Spiderman Remastered: 2.75% Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32888> |
||
|---|---|---|
| .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.txt | ||
| 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.