mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-07 01:30:26 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
We get a display fd passed in to us through wsi_display_init_wsi(), and when that was the first open of the display device with no previous DRM master, it got master privs and we saved that as the display fd to use for KHR_display. However, that meant that no other client can get DRM master, preventing things like vkAcquireDRMDisplayEXT() users from getting a master fd to pass in to us. Instead, we can drop master at device init time, and pick it back up when a VK_KHR_display swapchain is created that uses that fd. This allows dEQP-VK.wsi.acquire_drm and dEQP-VK.wsi.direct_drm CTS tests to run, which was previously impossible (those tests try to create a custom VK instance, while the CTS already has an instance that had been created with KHR_display enabled, so they're not the first open of the fd). It also means that you could successfully implement VT switching between a KHR_display client and other userspace DRM clients. Also, we can finally implement the text about vkAcquireDRMDisplayEXT's drmFd needing to match the device's fd. The risk of this change, though, is if you're implementing a compositor, and your clients have a chance to open the DRM fd before you've created your swapchain, they may inadvertently have master and DOS you. However, this is no different than the previous situation, where someone with permissions to open DRM could hold master and DOS you already. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38502> |
||
|---|---|---|
| .ci-farms | ||
| .ci-farms-disabled | ||
| .github/workflows | ||
| .gitlab | ||
| .gitlab-ci | ||
| .marge/hooks | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| licenses | ||
| src | ||
| subprojects | ||
| .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 | ||
| .shellcheckrc | ||
| clippy.toml | ||
| CODEOWNERS | ||
| meson.build | ||
| meson.options | ||
| README.rst | ||
| rustfmt.toml | ||
| 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://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.