mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-08 11:50:29 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
Consider the following program: - Uses a multi-sampled image as the color attachment. - Draws simple geometry at the color attachment. - Uses the (non-multi-sampled) swapchain image as the resolve image. - Presents the result. If the color attachment image (the multi-sampled one) is a sparse image and it's fully bound, everything works and this patch is not required. If the image is partially bound (or just completely unbound), without this patch the unbound area of the image that ends up being displayed on the screen is not completely black, and it should be completely black due to the fact that we claim to support residencyNonResidentStrict (which is required by vkd3d for DX12). On DG2, what ends up being displayed in the swapchain image is actually the whole image as if it was completely bound. On TGL the unbound area partially displays the geometry that was supposed to be drawn, but the background is a different color: it's a weird corrupted image. On both platforms the unbound areas should all be fully black. This patch applies the proper flushing so that we get the results we should have. The bug fixed by this patch is not caught by dEQP or anything our CI runs (dEQP does have some checks for residencynonResidentStrict correctness, but none that catch this issue in particular). I was able to catch this with my own sample program. Using INTEL_DEBUG=stall also makes the problem go away. If we had a way to track which images are fully bound we would be able to avoid this flush. I had code for that in the earliest versions of sparse before xe.ko had support for gpuva, but it requires maintaining a bunch of lists, so I'm not sure that's actually worth it. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27306> |
||
|---|---|---|
| .ci-farms | ||
| .ci-farms-disabled | ||
| .github/workflows | ||
| .gitlab | ||
| .gitlab-ci | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| src | ||
| subprojects | ||
| .clang-format | ||
| .clang-format-ignore | ||
| .clang-format-include | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .graphqlrc.yml | ||
| .mailmap | ||
| .mr-label-maker.yml | ||
| CODEOWNERS | ||
| meson.build | ||
| meson_options.txt | ||
| README.rst | ||
| VERSION | ||
`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.