mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
Previously the software scoreboard structure would drop previous dependencies for a given register and replace them with the most recent one for the same register when a new instruction (or set of instructions) is processed. This worked correctly on the Gfx12LP platforms this code was originally designed for, because a repeated dependency on the same register would either require the second instruction to synchronize against the first (so the first dependency could be disregarded from that point on) *or* require the dependency to be RaR and in-order, which allows the synchronization to be optimized out (the first dependency could still be disregarded as well, since the pipeline is in-order). However the latter assumption will break on upcoming Gfx12HP platforms, because they have multiple asynchronous FPU pipelines, so whenever we hit a RaR dependency we need to propagate forward both dependencies, since the order in which both reads will complete is not guaranteed by the hardware in cases where they occur from different asynchronous pipelines. Note that this dependency propagation change requires us to change the definition of dependency::done as well, since that constant is defined to discard any previous dependency information when used as argument for shadow(). This has been reported to fix the following conformance failures on DG2: KHR-GL46.shaders.uniform_block.random.all_per_block_buffers.19 dEQP-GLES3.functional.shaders.derivate.fwidth.* Reported-by: Tapani Pälli <tapani.palli@intel.com> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5670 Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14273> |
||
|---|---|---|
| .gitlab/issue_templates | ||
| .gitlab-ci | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| src | ||
| subprojects | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .mailmap | ||
| .travis.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.