0fcddd4d2c401a7678139456702cbe15288eebf1
Valhall introduces hardware-allocated varyings. Instead of allocating varying descriptors on the CPU with a slot based interface, the driver just tells the hardware how many bytes to allocate per vertex and loads/stores with byte offsets. This is much nicer! However, this requires us to rework our linking code to account for separable shaders. With separable shaders, we can't rely on driver_location matching between stages, and unlike on Midgard, we can't resolve the differences with curated command stream descriptors. However, we *can* rely on slots matching. So we should "just" determine the byte offsets based on the slot, and then separable shaders work. For GLES, it really is that easy. For desktop GL, it's not -- desktop GL brings unpredictable extra varyings like COL1 and TEX2. Allocating space for all of these unconditionally would hamper performance. To cope, we key fragment shaders to the set of non-GLES varyings written by the linked vertex shader. Then we may define an efficient ABI, where only apps only pay for what they use. Fixes various tests in dEQP-GLES31.functional.separate_shader.random.* on Valhall. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16310>
`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.
Description
Languages
C
75.5%
C++
17.2%
Python
2.7%
Rust
1.8%
Assembly
1.5%
Other
1%