mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 12:40:23 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
This commit rewrites the KGSL backend to utilize vk common wherever possible to bring the codebase in line with DRM while implicitly fixing minor API bugs that may have occurred as a result of manually implementing VK functions. As a part of moving to vk common, KGSL sync is now implemented atop vk common sync and vastly expanded in terms of functionality such as: * Import/Export of sync FDs - A required capability for properly supporting the Android WSI and as these functions were stubbed when a presentation operation used semaphores, it would cause a leak of FDs that were imported due to the expectation that the driver would close them. As well as causing UB around due to ignoring the imported FD or not exporting a valid FD. * Supporting pre-signalled fences - Vulkan allows fences to be created in a signalled state which was stubbed prior and can lead to UB. * Timeline semaphore support - As a result of utilizing vk common as the backbone for synchronization, its timeline semaphore emulation has been utilized to provide support for them without needing kernel support. (Note: On newer versions of KGSL, timeline semaphores can be implemented natively rather than using emulation as they support wait-before-signal) Fixes freezes due to semaphore usage with presentation on: * Genshin Impact * Skyline Emulator Signed-off-by: Mark Collins <mark@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21651> |
||
|---|---|---|
| .github/workflows | ||
| .gitlab/issue_templates | ||
| .gitlab-ci | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| src | ||
| subprojects | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .graphqlrc.yml | ||
| .mailmap | ||
| 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.