mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
Even if we only mask a single component from the result of CSEL.vector, in our IR we treat its semantics as vector which causes trouble with when scheduled to a scalar unit. The problematic bundle looks like this: vmul.MOV.i32 R31, TMP0.xxxx, R0.yzww sadd.MAX.i32 TMP0.y, R0.y, #65408 smul.CSEL.vector.i32 R0.y, TMP0.y, #127 As the comment in midgard.h illuminates, these CSEL instructions are actually operating per-bit, lining up with the all-1's booleans in Midgard. The Bifrost analogue is MUX.i32.bit, not CSEL.i32. We should probably rename the Midgard instruction to make that clear. Anyhoo, on the scalar unit, CSEL/MUX operates on the bottom 32-bits of its source. That's ok for the usual r31.w case, because that's secretly replicating to its nonexistent register, I think? But that doesn't work with the CSEL.vector (MUX.vector) form, because the condition it's actually muxing on is r31.x, which here is R0.y, not the intended R0.x. Rather than adding more special cases to the already overcomplicated scheduler (for the dubious benefit of avoiding a small shaderdb regression), just avoid scheduling CSEL.vector to smul. With the next patch, fixes: dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.1 Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19763> |
||
|---|---|---|
| .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.