mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 17:50:11 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
Found when running glxgears with vblank enabled and modesetting DDX. glxgears will send many present requests at the beginning, but most of them get complete event with skip mode. This problem causes glxgears report ~75fps on a 60Hz monitor at the first record. This change reduces it to 60fps. Vulkan side X11 WSI does not have this problem as it will wait first present request's complete event before send second present request. How the problem happens: 1. client send present request 1 with target msc = 1 2. server side current msc is 100, so it find request 1 is outdated and queue it for vblank with target msc = 101 3. client send present request 2 with target msc = 2 4. server side current msc is still 100, so it find request 2 is outdated and queue it with target msc = 101, and find request 1 will be overridden, so mark it as skipped and send idle notify for it. 5. client get the idle notify for request 1, and reuse the request 1 buffer for new back buffer to send present request 3. 6. this keeps going until client send present request N, and server finally process the vblank queue before 101 msc arrive and send complete event for all these requests back to client. Reviewed-by: Michel Dänzer <michel@daenzer.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38178> |
||
|---|---|---|
| .ci-farms | ||
| .ci-farms-disabled | ||
| .github/workflows | ||
| .gitlab | ||
| .gitlab-ci | ||
| .marge/hooks | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| licenses | ||
| 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 | ||
| .shellcheckrc | ||
| 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.