Find a file
Loïc Molinari d77f2784aa panfrost: Legalize blit feedback loops
A feedback loop exists when the data store of a texture object is used
both as a source texture and as a destination color, depth or stencil
buffer for a draw call. While this can't work when the source and
destination are from intersecting sets of texels, it is supported for
disjoint sets by letting users emit texture barriers between writes
and reads.

u_blitter allows blits with src == dst with disjoint texel sets with
no texture barrier enforcement. Mali tile-based architecture can't
guarantee that a disjoint read from the dst texture will fetch
up-to-date values because it depends on the tile processing order.

This commit adds a feedback loop check for blits and fixes the forced
full flushing regression for blits introduced when de-pointerizing
pipe_surface. This was necessary because the framebuffer comparison
used when looking up batches for such blits stopped failing (no
different pointers anymore) and the same batch was returned.

It also enforces the draw_vbo fallback for blits with a feedback loop
to work around a glCopyPixels() issue and it introduces another
workaround for depth/stencil blits on v9.

Fixes: 2eb45daa9c ("gallium: de-pointerize pipe_surface")
Signed-off-by: Loïc Molinari <loic.molinari@collabora.com>
Reviewed-by: Ashley Smith <ashley.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40124>
2026-04-28 11:43:35 +00:00
.ci-farms Revert "ci: disable Collabora's farm due to maintenance" 2026-04-20 14:28:04 +00:00
.ci-farms-disabled Revert "ci: disable Collabora's farm due to maintenance" 2026-04-20 14:28:04 +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/piglit-traces: Remove ANGLE trace support. 2026-04-23 22:54:12 +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 util/android_stub: drop legacy atrace 2026-04-27 23:29:27 +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 pvr: Enable shaderImageGatherExtended 2026-04-28 12:04:09 +01:00
include util/android_stub: drop legacy atrace 2026-04-27 23:29:27 +00:00
licenses licenses: add missing licenses 2025-01-08 20:37:51 +00:00
src panfrost: Legalize blit feedback loops 2026-04-28 11:43:35 +00:00
subprojects ci: Bump DirectX-Headers and Agility SDK dependencies to v1.619.1 2026-03-10 15:06:44 +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 gitlab: Highlight .cl as C 2023-11-02 11:37:46 +00:00
.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: Label Collabora farm with driver tags 2026-04-20 15:20:28 +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 panfrost 2026-03-04 09:28:58 +00:00
meson.build kk: Add poly dependency to KK 2026-04-17 10:52:53 +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.