Find a file
Alyssa Rosenzweig 1786032029 nir/validate: Optimize ssa_srcs set
Profiling showed that maintaining this ssa_srcs set consumes ~3% of CTS time
with a debugoptimized build. Unfortunately, we really do benefit from getting
this coverage in CI. So rather than remove the validation, let's optimize the
data structure used so we can keep the coverage at a fraction of the cost.

The expensive piece is the pointer set, which is backed by a relatively
expensive hash table. It would be much cheaper to use an invasive set instead,
with a single "present" bit. We don't want to bloat nir_src for this, however
there's an easy solution: use a tagged pointer to steal a bit in the nir_src for
the job. We untag everything at the end of validation (and this meta-invariant
is asserted with an auxiliary counter), so while we mutate the IR while
validating, the mutations do not escape nir_validate.

We tag the parent pointer and not the def pointer, because it is dramatically
less used and therefore has far fewer disrupted call sites.

The M1 job is improved from 3:03 to 2:55 of deqp-runner reported time, which is
excellent.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084>
2023-11-17 09:36:08 -04:00
.ci-farms ci: disable lima farm as it appears to be down 2023-11-09 15:32:32 +00:00
.ci-farms-disabled ci: disable lima farm as it appears to be down 2023-11-09 15:32:32 +00:00
.github/workflows add zink to macos ci 2022-11-22 19:04:13 +00:00
.gitlab gitlab: make commit more commit-like formatted 2023-11-09 17:30:07 +00:00
.gitlab-ci ci: Add syn to --force-fallback-for 2023-11-14 00:48:15 +00:00
android Android.mk: be able to build radeonsi without llvm 2023-11-10 01:28:16 +01:00
bin ci_run_n_monitor: require user to add an explicit .* at the end if jobs like *-full are wanted 2023-11-17 08:12:31 +00:00
build-support
docs nvk: Advertise VK_KHR_synchronization2 2023-11-17 05:32:55 +00:00
include intel: Sync xe_drm.h 2023-11-16 19:54:44 +00:00
src nir/validate: Optimize ssa_srcs set 2023-11-17 09:36:08 -04:00
subprojects meson: Update lua wrap to 5.4.6-4 2023-11-15 13:29:20 +00:00
.clang-format meson: enable the clang-format target 2023-05-29 11:57:08 +00:00
.clang-format-ignore ci: enforce formatting for RADV & ACO 2023-06-16 19:59:52 +00:00
.clang-format-include ci: Opt out asahi from clang-format 2023-11-04 14:13:09 +00:00
.dir-locals.el
.editorconfig glsl: Fixes ident issue in glsl_parser.yy and update editorconfig for it 2022-12-16 19:02:17 +00:00
.git-blame-ignore-revs freedreno: Add reformatting commits to .git-blame-ignore-revs 2023-09-22 02:07:36 +00:00
.gitattributes gitlab: Highlight .cl as C 2023-11-02 11:37:46 +00:00
.gitignore .gitignore: add VSCode and VSCodium 2022-11-21 23:09:30 +00:00
.gitlab-ci.yml ci: tag sanity, rustfmt and clang-format job as a "placeholder" job 2023-11-09 17:30:07 +00:00
.graphqlrc.yml ci/bin: Add utility to find jobs dependencies 2022-08-03 23:10:37 +00:00
.mailmap .mailmap: add an alias for Christian Gmeiner 2023-06-08 09:16:25 +00:00
CODEOWNERS CODEOWNERS: Add @flynnjiang for VirGL video 2023-08-23 08:35:08 +00:00
meson.build meson: Set build.rust_std 2023-11-14 00:48:15 +00:00
meson_options.txt meson: Add gallium-drivers=all option 2023-10-26 19:48:20 +00:00
README.rst docs: promote #dri-devel on oftc over freenode 2021-05-24 09:21:48 +00:00
VERSION VERSION: bump to 24.0 2023-10-25 19:56:42 +00:00

`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.