Find a file
Erik Faye-Lund 653f9e1239 pan/bi: rework memory barriers
The MEMORY_BARRIER instruction has some issues, where we end up
dead-code eliminating it before it gets to do what it's supposed to do.

But even if we fix that, we have issues where we can end up inserting
flow control into it, which isn't going to work because we have nothing
to emit here either.

So let's rework this to a special-cased NOP instruction, which is marked
as a scheduling barrier. The beneft here is that NOPs are already properly
handled when it comes to flow control.

Note that this isn't perfect either; this only prevents memory operations
from crossing the scheduling barrier. We should really prevent any
operation with observable side effects from crossing the barrier. This
includes things like reading clocks etc.

But that's a larger change, and it's a step in the right direction to get
this to no longer be dead-code eliminated. So let's put this band-aid on
for now.

Fixes: f77a50e45e ("pan/bi: add a MEMORY_BARRIER pseudo-instruction")
Reviewed-by: Caterina Shablia <caterina.shablia@collabora.com>
Reviewed-by: Olivia Lee <olivia.lee@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35502>
(cherry picked from commit 18893a250f)
2025-07-02 16:19:30 +02:00
.ci-farms ci: Disable fd-farm 2025-06-04 15:52:44 +02:00
.ci-farms-disabled ci: Disable fd-farm 2025-06-04 15:52:44 +02:00
.github/workflows add zink to macos ci 2022-11-22 19:04:13 +00:00
.gitlab docs: update gitlab docs urls 2025-02-23 00:31:59 +01:00
.gitlab-ci ci: drop tracking of removed folder 2025-05-03 12:48:02 +02: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-04 15:52:50 +02:00
bin pick-ui: add missing dependency 2025-04-23 12:21:56 +02: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: add sha sum for 25.1.4 2025-06-18 19:56:34 +02:00
include intel/dev: update BMG device names 2025-06-18 17:55:48 +02:00
licenses licenses: add missing licenses 2025-01-08 20:37:51 +00:00
src pan/bi: rework memory barriers 2025-07-02 16:19:30 +02:00
subprojects meson: Sync subproject version numbers in packagefiles with their .wrap equivalents 2025-04-04 21:22:27 +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 r300: opt in to clang-format CI enforcement for the compiler 2024-10-15 09:24:02 +00:00
.dir-locals.el
.editorconfig meson: rename meson_options.txt 2025-02-09 08:13:27 +00:00
.git-blame-ignore-revs ir3: add reformatting commits to .git-blame-ignore-revs 2025-02-27 13:10:53 +00:00
.gitattributes gitlab: Highlight .cl as C 2023-11-02 11:37:46 +00:00
.gitignore .gitignore: add .cache folder 2024-05-13 14:32:12 +00:00
.gitlab-ci.yml ci: rename ci-tron priority tag to avoid conflict with the generic fdo runners 2025-04-03 11:25:12 +00:00
.graphqlrc.yml
.mailmap mailmap: Update my name 2025-02-19 21:57:26 +00:00
.mr-label-maker.yml meson: rename meson_options.txt 2025-02-09 08:13:27 +00:00
.pick_status.json pan/bi: rework memory barriers 2025-07-02 16:19:30 +02:00
.shellcheckrc ci: move shellcheck options to .shellcheckrc 2024-10-24 22:43:03 +00:00
CODEOWNERS docs: update gitlab docs urls 2025-02-23 00:31:59 +01:00
meson.build meson: Simplify the power8 optimization logic 2025-04-14 14:12:30 +00:00
meson.options meson: stop building XA by default 2025-06-04 15:52:45 +02: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 for 25.1.4 2025-06-18 19:45:40 +02: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.