Find a file
Kenneth Graunke d5d03a7273 nir: Perform 'weak' global value numbering in all GCM passes
Full global value numbering (GVN) can be pretty aggressive, moving
values far away from their original locations, even out of loops,
and can extend their live ranges a lot.  So we've left it disabled.

This patch introduces a weaker form of GVN: we only allow coalescing
identical values when they appear on either side of the same if/else
construct.  For now, we also only allow ALU instructions.

This allows nir_opt_gcm to clean up identical instructions appearing
on both sides of if/then/else control flow.  But it avoids aggressively
combining every other occurrence of a value in the program.

This can still have surprisingly large cascading effects, as simple
constructs are cleaned up, leading to more opportunities to do the
same clean up, up a chain of nested ifs.  It also enables greater use
of the select peephole as ifs are cleaned up.

shader-db and fossil-db results show a reduction in spills/fills on
Icelake, so it doesn't seem to be hurting register pressure.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19823>
2022-12-14 20:56:55 +00:00
.github/workflows add zink to macos ci 2022-11-22 19:04:13 +00:00
.gitlab/issue_templates gitlab: ask that reporters don't include long logs in descriptions 2022-06-08 15:06:51 +00:00
.gitlab-ci ci/bare-metal: Avoid a bug in armhf stripping causing tempfiles in artifacts. 2022-12-14 17:09:07 +00:00
android AOSP: Add intel_hasvk vulkan library suffix 2022-11-29 09:05:17 +01:00
bin commit_in_branch.py: variables cleanup 2022-11-30 17:08:48 +00:00
build-support configure: commit test files 2017-10-16 16:32:43 -07:00
docs radv: advertise VK_AMD_shader_early_and_late_fragment_tests 2022-12-14 08:16:27 +00:00
include egl: Replace sRGB support check with a pscreen query. 2022-12-09 05:32:18 +00:00
src nir: Perform 'weak' global value numbering in all GCM passes 2022-12-14 20:56:55 +00:00
subprojects meson: upgrade zlib wrap 2022-10-20 22:52:06 +00:00
.dir-locals.el dir-locals.el: Adds White Space support 2016-11-14 19:17:49 +02:00
.editorconfig mesa: replace tab with 3 space in mesa/program/program_parse.y by tools 2022-11-24 02:56:03 +00:00
.gitattributes Add new rules to .gitattributes 2022-01-19 15:17:17 +00:00
.gitignore .gitignore: add VSCode and VSCodium 2022-11-21 23:09:30 +00:00
.gitlab-ci.yml ci/docs: Always expose the built docs. 2022-12-12 23:29:53 +00:00
.graphqlrc.yml ci/bin: Add utility to find jobs dependencies 2022-08-03 23:10:37 +00:00
.mailmap .mailmap: change spelling for Constantine Kharlamov 2022-08-12 13:11:03 +00:00
CODEOWNERS CODEOWNERS: add MTCoster as an Imagination maintainer 2022-11-22 09:24:43 +00:00
meson.build vdpau: allow building vdpau st with virgl only 2022-12-12 22:01:27 +00:00
meson_options.txt util: Add xmlconfig build option 2022-11-23 23:14:10 +00:00
README.rst docs: promote #dri-devel on oftc over freenode 2021-05-24 09:21:48 +00:00
VERSION VERSION: fix version as it will be a new year 2022-11-04 14:30:55 +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.