Mesa3D Graphics Library (Bleeding edge ray tracing branches)
Go to file
Kenneth Graunke a16975e615 iris: Rework iris_update_draw_parameters to be more efficient
This improves a couple of things:

1. We now only update anything if the shader actually cares.

   Previously, is_indexed_draw was causing us to flag dirty vertex
   buffers, elements, and SGVs every time the shader switched between
   indexed and non-indexed draws.  This is a very common situation,
   but we only need that information if the shader uses gl_BaseVertex.

   We were also flagging things when switching between indirect/direct
   draws as well, and now we only bother if it matters.

2. We upload new draw parameters only when necessary.

   When we detect that the draw parameters have changed, we upload a
   new copy, and use that.  Previously we were uploading it every time
   the vertex buffers were dirty (for possibly unrelated reasons) and
   the shader needed that info.  Tying these together also makes the
   code a bit easier to follow.

In Civilization VI's benchmark, this code was flagging dirty state
many times per frame (49 average, 16 median, 614 maximum).  Now it
occurs exactly once for the entire run.
2019-09-18 22:50:52 -07:00
.gitlab-ci gitlab-ci: Move scons build/test commands to a separate shell script 2019-09-18 10:36:48 +00:00
bin symbols-check: fix `nm` invocation on MacOS 2019-08-04 11:06:27 +01:00
build-support configure: commit test files 2017-10-16 16:32:43 -07:00
docs docs: Add the maximum implemented Vulkan API version in 19.3 rel notes 2019-09-19 00:03:55 +03:00
doxygen
include radeonsi: add Navi12 PCI ID 2019-09-17 16:00:33 -04:00
scons gallium: Require LLVM >= 3.9 2019-09-11 17:00:43 +00:00
scripts get_reviewer.pl: improve portability 2019-05-03 14:32:44 +01:00
src iris: Rework iris_update_draw_parameters to be more efficient 2019-09-18 22:50:52 -07:00
subprojects meson: add a expat subproject 2019-09-10 20:36:47 +00:00
.dir-locals.el dir-locals.el: Adds White Space support 2016-11-14 19:17:49 +02:00
.editorconfig editorconfig: Fix meson style 2019-05-24 18:44:18 +00:00
.gitattributes
.gitignore intel/tools: Add unit tests for assembler 2019-05-07 14:33:48 -07:00
.gitlab-ci.yml gitlab-ci: Merge scons-nollvm and scons-llvm jobs 2019-09-18 10:36:48 +00:00
.mailmap .mailmap: add an alias for Eric Engestrom 2019-09-18 14:05:05 +02:00
.travis.yml travis: Fail build if any command in if statement fails. 2019-08-31 12:20:04 -07:00
Android.common.mk android: mesa: revert "Enable asm unconditionally" 2019-09-06 08:48:28 +02:00
Android.mk Android.mk: Fix missing \ from recent llvm change 2019-09-13 19:11:10 +00:00
CleanSpec.mk CleanSpec.mk: Remove HOST_OUT_release 2018-08-02 15:42:40 -06:00
README.rst README: Drop the badges from the readme 2019-02-07 12:46:17 -06:00
REVIEWERS docs: drop most autoconf references 2019-04-15 13:44:34 -07:00
SConstruct scons: Require python 2.7 2018-08-16 13:52:56 -07:00
VERSION mesa: bump version to 19.3.0-devel 2019-08-20 22:33:49 +01:00
appveyor.yml appveyor: Revert commits adding Cygwin support. 2019-01-25 14:13:26 +00:00
common.py scons/svga: remove opt from the list of valid build types 2018-10-26 12:09:00 -06:00
meson.build meson: Add coroutines component to llvmpipe build. 2019-09-11 15:14:17 -07:00
meson_options.txt meson: Add a platform for windows 2019-09-10 20:36:47 +00:00

README.rst

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