Mesa 3D graphics library
Go to file
Alyssa Rosenzweig 57e8d21fff panfrost: Require 64-byte alignment on imports
While Panfrost allocates linear images with strides that are a multiple of 64
bytes, other dma-buf producers on the system may not satisfy this requirement.
However, at least on v7 and newer, any image with a regular format must have a
stride that is a multiple of 64 bytes.

This fixes a real bug in an application that created a linear R8_UNORM image
with stride 480 bytes, imported it as an EGL_image, and then tried to texture
from it with the GPU. Previously, the driver allowed this situation but it
resulted in an imprecise fault from the GPU. This patch corrects the driver to
reject the import as invalid due to the unaligned stride, ensuring we never
attempt to texture from such a resource.

To implement, we add some new layout queries to centralize knowledge about the
stride alignment requirements, and we sprinkle in asserts to show how the
invariant is upheld throughout the lifecycle of image creation to texturing.

Cc: mesa-stable
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19620>
(cherry picked from commit 811f8a1946)
2022-11-17 14:05:02 +00:00
.github/workflows ci: Fixes macos.yml 2022-11-09 21:22:06 +00:00
.gitlab/issue_templates
.gitlab-ci ci: Getting debian-clang-release to building with glx=xlib 2022-10-26 02:16:35 +00:00
android Android.mk: Fix gnu++14 related build failures 2022-11-09 21:22:06 +00:00
bin
build-support
docs docs/zink: fix and cleanup rst syntax 2022-11-09 21:22:06 +00:00
include panfrost: Fix build with Perfetto (again) 2022-11-09 21:22:06 +00:00
src panfrost: Require 64-byte alignment on imports 2022-11-17 14:05:02 +00:00
subprojects meson: upgrade zlib wrap 2022-10-20 22:52:06 +00:00
.dir-locals.el
.editorconfig rusticl: added 2022-09-12 05:58:12 +00:00
.gitattributes
.gitignore
.gitlab-ci.yml Revert "CI: Igalia farm is down" 2022-10-17 02:02:01 +02:00
.graphqlrc.yml
.mailmap
.pick_status.json panfrost: Require 64-byte alignment on imports 2022-11-17 14:05:02 +00:00
CODEOWNERS CODEOWNERS: remove rajnesh-kanwal as an Imagination maintainer 2022-10-31 23:59:41 +00:00
README.rst
VERSION VERSION: bump for 22.3.0-rc2 2022-11-09 21:24:41 +00:00
meson.build meson: simplified meson for enabling ray-tracing on Intel 2022-11-01 06:30:47 +00:00
meson_options.txt meson: simplified meson for enabling ray-tracing on Intel 2022-11-01 06:30:47 +00:00

README.rst

`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://mesa3d.org/install.html>`_), but the recommended way is to use
Meson (`docs/meson.rst <https://mesa3d.org/meson.html>`_):

.. code-block:: sh

  $ mkdir build
  $ cd build
  $ meson ..
  $ sudo ninja 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://mesa3d.org/bugs.html>`_).


Contributing
------------

Contributions are welcome, and step-by-step instructions can be found in our
documentation (`docs/submittingpatches.rst
<https://mesa3d.org/submittingpatches.html>`_).

Note that Mesa uses gitlab for patches submission, review and discussions.