Find a file
Jason Ekstrand 09f1de97a7 anv,i965: Lower away image derefs in the driver
Previously, the back-end compiler turn image access into magic uniform
reads and there was a complex contract between back-end compiler and
driver about setting up and filling out those params.  As of this
commit, both drivers now lower image_deref_load_param_intel intrinsics
to load_uniform intrinsics controlled by the driver and lower the other
image_deref_* intrinsics to image_* intrinsics which take an actual
binding table index.  There are still "magic" uniforms but they are now
added and controlled entirely by the driver and that contract no longer
spans components.

This also has the side-effect of making most image use compile-time
binding table indices.  Previously, all image access pulled the binding
table index from a uniform.  Part of the reason for this was that the
magic uniforms made it difficult to decouple binding table indices from
the uniforms and, since they are indexed completely differently
(especially in Vulkan), it was hard to pull them apart.  Now that the
driver is handling both, it's trivial to decouple the two and provide
actual binding table indices.

Shader-db results on Kaby Lake:

    total instructions in shared programs: 15166872 -> 15164293 (-0.02%)
    instructions in affected programs: 115834 -> 113255 (-2.23%)
    helped: 191
    HURT: 0

    total cycles in shared programs: 571311495 -> 571196465 (-0.02%)
    cycles in affected programs: 4757115 -> 4642085 (-2.42%)
    helped: 73
    HURT: 67

    total spills in shared programs: 10951 -> 10926 (-0.23%)
    spills in affected programs: 742 -> 717 (-3.37%)
    helped: 7
    HURT: 0

    total fills in shared programs: 22226 -> 22201 (-0.11%)
    fills in affected programs: 1146 -> 1121 (-2.18%)
    helped: 7
    HURT: 0

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2018-08-29 14:04:03 -05:00
bin bin/git_sha1_gen.py: remove execute bit/shebang 2018-08-23 17:00:04 +01:00
build-support configure: commit test files 2017-10-16 16:32:43 -07:00
docs i965: Add INTEL_fragment_shader_ordering support. 2018-08-28 17:15:10 +03:00
doxygen doxygen: Plumb through gallium/ to automated documentation 2016-05-30 17:53:45 +01:00
include i965: Add a new CFL PCI ID. 2018-08-14 15:46:56 -07:00
m4 Revert "configure: allow building with python3" 2018-08-24 11:14:15 +01:00
scons scons: Check for mako 0.8.0 2018-08-16 13:53:10 -07:00
scripts get_reviewer.pl: fix mesa check 2016-08-30 16:44:00 -04:00
src anv,i965: Lower away image derefs in the driver 2018-08-29 14:04:03 -05:00
.dir-locals.el dir-locals.el: Adds White Space support 2016-11-14 19:17:49 +02:00
.editorconfig editorconfig: Add meson configuration 2017-10-09 13:40:50 -07:00
.gitattributes Disable autocrlf for Visual Studio project files. 2008-02-28 12:34:01 +09:00
.gitignore .gitignore: list *.orig and *.rej 2017-09-06 17:48:50 +01:00
.mailmap mailmap: add various typos of Emil's address from the log 2018-08-16 17:38:04 +01:00
.travis.yml Revert "travis: use python3 for the autoconf builds" 2018-08-24 11:10:24 +01:00
Android.common.mk Android: copy -fno*math* options from the autotools build 2018-08-08 13:45:55 +01:00
Android.mk dri drivers: Always add the sha1 build-id 2017-10-31 23:36:54 -07:00
appveyor.yml appveyor: Set git core.autocrlf setting to true. 2018-08-21 09:46:19 +01:00
autogen.sh autogen.sh: pass --force to autoreconf, quote ORIGDIR 2015-03-11 23:28:26 +00:00
CleanSpec.mk CleanSpec.mk: Remove HOST_OUT_release 2018-08-02 15:42:40 -06:00
common.py scons: Recognize LLVM_CONFIG environment variable. 2016-11-24 13:37:33 -08:00
configure.ac Revert "configure: allow building with python3" 2018-08-24 11:14:15 +01:00
install-gallium-links.mk gallium: Fix install-gallium-links.mk on non-bash /bin/sh 2016-10-10 08:56:12 -07:00
install-lib-links.mk install-lib-links: remove the .install-lib-links file 2015-02-24 15:33:25 +00:00
Makefile.am v3d: Switch the vc5 driver to using the finalized V3D UABI. 2018-05-16 21:19:07 +01:00
meson.build meson: Don't enable any vulkan drivers on arm, aarch64 2018-08-27 11:32:04 -07:00
meson_options.txt intel: tools: import ImGui 2018-08-22 18:02:11 +01:00
README.rst README: wording fix for previous commit 2018-06-11 18:34:58 +01:00
REVIEWERS REVIEWERS: add root meson.build to the Meson reviewers group 2018-06-01 17:53:06 +01:00
SConstruct scons: Require python 2.7 2018-08-16 13:52:56 -07:00
VERSION mesa: bump version to 18.3.0-devel 2018-08-02 18:00:15 +03: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 status
------------

Travis:

.. image:: https://travis-ci.org/mesa3d/mesa.svg?branch=master
    :target: https://travis-ci.org/mesa3d/mesa

Appveyor:

.. image:: https://img.shields.io/appveyor/ci/mesa3d/mesa.svg
    :target: https://ci.appveyor.com/project/mesa3d/mesa

Coverity:

.. image:: https://scan.coverity.com/projects/139/badge.svg?flat=1
    :target: https://scan.coverity.com/projects/mesa


Build & install
---------------

You can find more information in our documentation (`docs/install.html
<https://mesa3d.org/install.html>`_), but the recommended way is to use
Meson (`docs/meson.html <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 `Freenode's #dri-devel
<irc://chat.freenode.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.html <https://mesa3d.org/bugs.html>`_).


Contributing
------------

Contributions are welcome, and step-by-step instructions can be found in our
documentation (`docs/submittingpatches.html
<https://mesa3d.org/submittingpatches.html>`_).

Note that Mesa uses email mailing-lists for patches submission, review and
discussions.