3570e94bcc187512490ac0871086fb101dc1c9d6
Now that everything is in place, we can actually take advantage of preambles. This wins us a crude form of UBO pushing (accounting for most of the win here), as well as its intended purpose of optimizing uniform-on-uniform arithmetic. shader-db results are excellent. The shader that's regressed for instruction count is a fragment shader that solely consists of `gl_FragColor = uniform`, which goes from a vectorized UBO load to four scalar moves. That's more instructions (and more bytes) but presumably faster, since ALU should be much cheaper than load/store. total instructions in shared programs: 6502 -> 5764 (-11.35%) instructions in affected programs: 5136 -> 4398 (-14.37%) helped: 60 HURT: 1 helped stats (abs) min: 2.0 max: 47.0 x̄: 12.33 x̃: 8 helped stats (rel) min: 0.84% max: 34.48% x̄: 18.69% x̃: 21.05% HURT stats (abs) min: 2.0 max: 2.0 x̄: 2.00 x̃: 2 HURT stats (rel) min: 33.33% max: 33.33% x̄: 33.33% x̃: 33.33% 95% mean confidence interval for instructions value: -14.69 -9.51 95% mean confidence interval for instructions %-change: -20.49% -15.20% Instructions are helped. total bytes in shared programs: 42186 -> 38310 (-9.19%) bytes in affected programs: 33182 -> 29306 (-11.68%) helped: 60 HURT: 1 helped stats (abs) min: 10.0 max: 272.0 x̄: 64.83 x̃: 50 helped stats (rel) min: 0.72% max: 30.00% x̄: 15.16% x̃: 16.67% HURT stats (abs) min: 14.0 max: 14.0 x̄: 14.00 x̃: 14 HURT stats (rel) min: 31.82% max: 31.82% x̄: 31.82% x̃: 31.82% 95% mean confidence interval for bytes value: -77.73 -49.35 95% mean confidence interval for bytes %-change: -16.66% -12.11% Bytes are helped. total halfregs in shared programs: 2370 -> 1639 (-30.84%) halfregs in affected programs: 1804 -> 1073 (-40.52%) helped: 60 HURT: 0 helped stats (abs) min: 1.0 max: 40.0 x̄: 12.18 x̃: 8 helped stats (rel) min: 3.85% max: 72.73% x̄: 41.37% x̃: 36.17% 95% mean confidence interval for halfregs value: -14.77 -9.60 95% mean confidence interval for halfregs %-change: -46.00% -36.75% Halfregs are helped. Total CPU time (seconds): 2.71 -> 2.80 (3.32%) Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18813>
`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%