Find a file
Caio Oliveira 821a812c7d brw: Don't directly use regs_read/regs_written/size_read as bound for non-trivial loops
Instead save to a local variable and use that.  In various cases the
compiler is not able to pull it out of the loop, since there are other
not inlined function calls as part of the loop's body, resulting in
repeated unnecessary calls to either size_read() or its pieces that
get inlined.

Below are fossil compilation times in a MTL machine compiling shaders
for a BMG GPU:

```
// Differences at 95.0% confidence.

// Rise of the Tomb Raider (n=20)
   -0.017 +/- 0.00724575
   -3.45177665% +/- 1.45084%

// Alan Wake (n=20)
   -0.153 +/- 0.00960067
   -4.99265786% +/- 0.303695%

// Borderlands 3 (n=14)
   -0.486428571 +/- 0.15354
   -3.51248195% +/- 1.0835%

// Oblivion Remastered (n=14)
   -0.143571429 +/- 0.0357991
   -3.05749924% +/- 0.747872%

// Baldur's Gate 3 (n=14)
   -1.68928571 +/- 0.151598
   -4.12128605% +/- 0.364259%
```

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41496>
2026-05-21 18:04:14 +00:00
.ci-farms Revert "ci: vmware farm is offline, stop using it" 2026-05-18 22:24:39 +00:00
.ci-farms-disabled Revert "ci: vmware farm is offline, stop using it" 2026-05-18 22:24:39 +00:00
.github/workflows meson: remove unused osmesa option 2025-06-23 06:42:50 +00:00
.gitlab radv: introduce RADV_EXPERIMENTAL envvar for experimental features 2026-03-30 07:27:01 +00:00
.gitlab-ci ci/android: Add arm64 support for Android CTS 2026-05-21 06:21:02 +00:00
.marge/hooks marge/pipeline_message: print details for any pipeline that hasn't succeeded 2026-02-13 14:44:30 +00:00
android android: fix building rules for i915, r300 2025-10-08 23:43:33 +02:00
bin bin/gen_release_notes: add paragraph on OpenCL support 2026-05-13 15:21:40 +00:00
build-support meson: move tsan-blacklist.txt to build-support with the other build support files 2024-05-01 07:05:12 +00:00
docs docs/zink: add maint5 to the list of required extensions 2026-05-21 16:08:52 +00:00
include vulkan,spirv: Update spec to 1.4.352 2026-05-20 15:36:39 +00:00
licenses licenses: add missing licenses 2025-01-08 20:37:51 +00:00
src brw: Don't directly use regs_read/regs_written/size_read as bound for non-trivial loops 2026-05-21 18:04:14 +00:00
subprojects meson: update libdrm wrap 2026-05-12 13:02:24 +00:00
.clang-format meson: Restore .clang-format for ninja clang-format target 2026-02-02 13:30:55 +00:00
.clang-format-ignore ethosu: Switch to the weight encoder from Regor 2026-03-23 07:45:55 +00:00
.clang-format-include ethos: Initial commit of a driver for the Arm Ethos-U65 NPU. 2025-10-15 20:10:15 +00:00
.dir-locals.el
.editorconfig editorconfig: Set for glsl files 2025-11-14 19:31:17 +00:00
.git-blame-ignore-revs radv: Add re-format commit to .git-blame-ignore-revs 2025-11-12 07:55:36 +00:00
.gitattributes
.gitignore Revert "add VK CTS validation report for a0 interpolation fix" 2026-02-10 18:07:18 +00:00
.gitlab-ci.yml ci: changing .gitlab-ci.yml itself also means the container jobs must exist 2026-03-18 14:19:02 +00:00
.graphqlrc.yml
.mailmap mailmap: Update my email 2026-03-12 23:36:00 +00:00
.mr-label-maker.yml mr-label-maker: Add rule for new trace replay config files 2026-05-11 08:02:05 +00:00
.shellcheckrc ci: move shellcheck options to .shellcheckrc 2024-10-24 22:43:03 +00:00
clippy.toml ci: read the MSRV from clippy.toml to avoid having too many copies to keep in sync 2025-12-20 00:13:19 +01:00
CODEOWNERS CODEOWNERS: update broadcom maintainers 2026-05-20 12:09:54 +00:00
meson.build meson: fix renderdoc integration define 2026-05-12 22:11:27 +00:00
meson.options amd: make ac_ib_parser an amd tool build option 2026-04-17 09:40:13 +00:00
README.rst docs: Match README installation guide with meson.rst 2024-07-27 11:53:53 +00:00
rustfmt.toml mesa: Add rustfmt.toml 2024-11-18 22:29:14 +00:00
VERSION VERSION: bump to 26.2 2026-04-15 13:15:35 +00:00

`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.