c1b2cb6ef7ff331bf44b90ea5de24925fc80bfeb

The IB2 packet is only supported on the graphics queue. To execute DGC IB on compute, the previous solution was to submit it separately without any chaining. Though this solution was incomplete because it's easy to reach the maximum number of IBs per submit when there is a lot of ExecuteIndirect() calls. To fix that, the proposed solution is to implement DGC IB chaining when it's executed on the compute only. The idea is to add a trailer that is added at the beginning of the DGC IB (to know the offset). This trailer is used to chain back back the DGC IB to a normal CS, it's patched at execution time. Patching is fine because it's not allowed to execute the same DGC IB concurrently and the entire solution relies on that. When the DGC IB is executed on graphics, the trailer isn't patched and it only contains NOPs padding. Performance should be mostly similar. This fixes dEQP-VK.dgc.nv.compute.misc.execute_many_*_primary_cmd_compute_queue. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30809>
`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.
Description
Languages
C
75.3%
C++
18.2%
Python
2.7%
Assembly
1.5%
Rust
1.2%
Other
0.9%