Find a file
Romaric Jodin 7dc4f28507 pan/bi: schedule simple iterators to avoid extra move
Try to move iterator as close to the end of the block as possible. The
goal is to avoid the iterator being used after being updated, to
prevent the need for an extra move instruction.

shader-db report on `Mali-G725`:
```
total instrs in shared programs: 720530 -> 716482 (-0.56%)
instrs in affected programs: 231842 -> 227794 (-1.75%)
helped: 3804
HURT: 1
helped stats (abs) min: 1.0 max: 8.0 x̄: 1.06 x̃: 1
helped stats (rel) min: 0.14% max: 6.25% x̄: 2.75% x̃: 2.86%
HURT stats (abs)   min: 1.0 max: 1.0 x̄: 1.00 x̃: 1
HURT stats (rel)   min: 0.05% max: 0.05% x̄: 0.05% x̃: 0.05%
95% mean confidence interval for instrs value: -1.08 -1.04
95% mean confidence interval for instrs %-change: -2.79% -2.71%
Instrs are helped.

total cycles in shared programs: 35295.80 -> 35295.55 (<.01%)
cycles in affected programs: 3.50 -> 3.25 (-7.14%)
helped: 8
HURT: 0
helped stats (abs) min: 0.03125 max: 0.03125 x̄: 0.03 x̃: 0
helped stats (rel) min: 6.90% max: 7.41% x̄: 7.15% x̃: 7.15%
95% mean confidence interval for cycles value: -0.03 -0.03
95% mean confidence interval for cycles %-change: -7.38% -6.92%
Cycles are helped.

total fma in shared programs: 5054.34 -> 5054.34 (0.00%)
fma in affected programs: 0 -> 0
helped: 0
HURT: 0

total cvt in shared programs: 4707.69 -> 4644.44 (-1.34%)
cvt in affected programs: 1471.28 -> 1408.03 (-4.30%)
helped: 3804
HURT: 1
helped stats (abs) min: 0.015625 max: 0.125 x̄: 0.02 x̃: 0
helped stats (rel) min: 0.37% max: 12.50% x̄: 6.01% x̃: 6.67%
HURT stats (abs)   min: 0.015625 max: 0.015625 x̄: 0.02 x̃: 0
HURT stats (rel)   min: 0.13% max: 0.13% x̄: 0.13% x̃: 0.13%
95% mean confidence interval for cvt value: -0.02 -0.02
95% mean confidence interval for cvt %-change: -6.07% -5.94%
Cvt are helped.

total sfu in shared programs: 1878.25 -> 1878.25 (0.00%)
sfu in affected programs: 0 -> 0
helped: 0
HURT: 0

total v in shared programs: 2353 -> 2353 (0.00%)
v in affected programs: 0 -> 0
helped: 0
HURT: 0

total t in shared programs: 5530 -> 5530 (0.00%)
t in affected programs: 0 -> 0
helped: 0
HURT: 0

total ls in shared programs: 27975 -> 27975 (0.00%)
ls in affected programs: 0 -> 0
helped: 0
HURT: 0

total code size in shared programs: 6386560 -> 6289664 (-1.52%)
code size in affected programs: 508544 -> 411648 (-19.05%)
helped: 757
HURT: 0
helped stats (abs) min: 128.0 max: 128.0 x̄: 128.00 x̃: 128
helped stats (rel) min: 0.83% max: 33.33% x̄: 31.09% x̃: 33.33%
95% mean confidence interval for code size value: -128.00 -128.00
95% mean confidence interval for code size %-change: -31.57% -30.60%
Code size are helped.

total threads in shared programs: 14698 -> 14698 (0.00%)
threads in affected programs: 0 -> 0
helped: 0
HURT: 0

total loops in shared programs: 166 -> 166 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0

total spills in shared programs: 37 -> 37 (0.00%)
spills in affected programs: 0 -> 0
helped: 0
HURT: 0

total fills in shared programs: 111 -> 111 (0.00%)
fills in affected programs: 0 -> 0
helped: 0
HURT: 0
```

Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36021>
2025-08-07 15:09:56 +00:00
.ci-farms Revert "ci: mark igalia farm as offline" 2025-08-07 11:02:05 +00:00
.ci-farms-disabled Revert "ci: mark igalia farm as offline" 2025-08-07 11:02:05 +00:00
.github/workflows meson: remove unused osmesa option 2025-06-23 06:42:50 +00:00
.gitlab docs: update gitlab docs urls 2025-02-23 00:31:59 +01:00
.gitlab-ci ci/container: add comment to bump image tag 2025-08-07 08:44:53 +00:00
.marge/hooks ci: pipeline_message: reset empty errors 2025-01-07 05:08:10 +00:00
android Revert "android: Link with libc++fs up to SDK 35" 2025-06-03 22:01:01 +00:00
bin docs,ci: update mapi relocation 2025-08-06 20:35:26 +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 panvk: Enable VK_ARM_shader_core_builtins 2025-08-07 11:46:33 +02:00
include drm-uapi: update v3d_drm.h for reset counters 2025-07-30 11:26:20 +02:00
licenses licenses: add missing licenses 2025-01-08 20:37:51 +00:00
src pan/bi: schedule simple iterators to avoid extra move 2025-08-07 15:09:56 +00:00
subprojects build: Add dependency on libdisplay-info 2025-08-05 08:50:05 +00:00
.clang-format meson: enable the clang-format target 2023-05-29 11:57:08 +00:00
.clang-format-ignore ci: enforce formatting for RADV & ACO 2023-06-16 19:59:52 +00:00
.clang-format-include rocket: Initial commit of a driver for Rockchip's NPU 2025-07-28 08:06:38 +02:00
.dir-locals.el
.editorconfig meson: rename meson_options.txt 2025-02-09 08:13:27 +00:00
.git-blame-ignore-revs freedreno: Add register renaming to .git-blame-ignore-revs 2025-07-03 12:50:04 +00:00
.gitattributes gitlab: Highlight .cl as C 2023-11-02 11:37:46 +00:00
.gitignore .gitignore: Add KDevelop *.kdev4 2025-07-24 16:12:10 +00:00
.gitlab-ci.yml ci: drop unnecessary rename of *.log into *.log.txt 2025-08-04 20:15:22 +00:00
.graphqlrc.yml
.mailmap mailmap,bin/people.csv: fix my preferred email address 2025-07-11 12:04:08 +00:00
.mr-label-maker.yml mr-label-maker.yml: remove remaining osmesa occurrences 2025-06-23 06:42:50 +00:00
.shellcheckrc ci: move shellcheck options to .shellcheckrc 2024-10-24 22:43:03 +00:00
CODEOWNERS venus: add code owners 2025-07-26 00:33:59 +00:00
meson.build meson: remove unused -DLLVM_AVAILABLE 2025-08-05 23:26:32 +00:00
meson.options meson: remove intel-clc options 2025-08-07 11:25:41 +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 25.3 2025-07-16 13:50:24 +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.