Go to file
Kévin Dietrich bbe6d44928 Cycles: optimize device updates
This optimizes device updates (during user edits or frame changes in
the viewport) by avoiding unnecessary computations. To achieve this,
we use a combination of the sockets' update flags as well as some new
flags passed to the various managers when tagging for an update to tell
exactly what the tagging is for (e.g. shader was modified, object was
removed, etc.).

Besides avoiding recomputations, we also avoid resending to the devices
unmodified data arrays, thus reducing bandwidth usage. For OptiX and
Embree, BVH packing was also multithreaded.

The performance improvements may vary depending on the used device (CPU
or GPU), and the content of the scene. Simple scenes (e.g. with no adaptive
subdivision or volumes) rendered using OptiX will benefit from this work
the most.

On average, for a variety of animated scenes, this gives a 3x speedup.

Reviewed By: #cycles, brecht

Maniphest Tasks: T79174

Differential Revision: https://developer.blender.org/D9555
2021-01-22 16:08:25 +01:00
.github Revert "Merge branch 'master' into blender-v2.81-release" 2019-10-11 21:31:58 +02:00
build_files Cleanup: spelling & cleanup for cmake_consistency_check 2021-01-20 16:04:03 +11:00
doc Blender 2.93 bcon1 - alpha 2021-01-13 17:33:27 +01:00
extern Fluid: Updated Mantaflow source files 2021-01-13 09:49:38 +01:00
intern Cycles: optimize device updates 2021-01-22 16:08:25 +01:00
release Geometry Nodes: new Attribute Sample Texture node 2021-01-21 16:49:06 +01:00
source Refactor BMain relations temp data. 2021-01-22 16:05:17 +01:00
tests Tests: skip OSL render tests in build without OSL 2021-01-14 13:14:43 +01:00
.arcconfig Fix .arcconfig not working with latest arcanist version 2020-03-01 22:35:31 +01:00
.clang-format Cleanup: add SEQ_ALL_BEGIN, SEQ_CURRENT_BEGIN to .clang-format 2020-08-26 09:59:15 +10:00
.clang-tidy Cleanup: Clang-Tidy, modernize-use-using 2020-12-04 12:46:43 +01:00
.editorconfig editorconfig: correct indent size 2019-04-17 13:34:46 +02:00
.git-blame-ignore-revs Cleanup: add commits to .git-blame-ignore-revs. 2020-12-02 13:20:43 +05:30
.gitignore Fluid: Added wavelet noise tile to the gitignore 2020-01-29 19:21:52 +01:00
.gitmodules Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
CMakeLists.txt Tests: run suites instead of individual test cases 2021-01-11 11:29:30 +01:00
COPYING == docs == 2010-10-13 14:44:22 +00:00
GNUmakefile Unix/macOS: support building with Ccache 2020-12-21 10:47:35 +05:30
make.bat Build: add "make test" command for Windows, output log file 2019-09-12 20:23:03 +02:00
readme.rst readme: separate development links 2019-04-13 14:45:51 +02:00

.. Keep this document short & concise,
   linking to external resources instead of including content in-line.
   See 'release/text/readme.html' for the end user read-me.


Blender
=======

Blender is the free and open source 3D creation suite.
It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing,
motion tracking and video editing.

.. figure:: https://code.blender.org/wp-content/uploads/2018/12/springrg.jpg
   :scale: 50 %
   :align: center


Project Pages
-------------

- `Main Website <http://www.blender.org>`__
- `Reference Manual <https://docs.blender.org/manual/en/latest/index.html>`__
- `User Community <https://www.blender.org/community/>`__

Development
-----------

- `Build Instructions <https://wiki.blender.org/wiki/Building_Blender>`__
- `Code Review & Bug Tracker <https://developer.blender.org>`__
- `Developer Forum <https://devtalk.blender.org>`__
- `Developer Documentation <https://wiki.blender.org>`__


License
-------

Blender as a whole is licensed under the GNU Public License, Version 3.
Individual files may have a different, but compatible license.

See `blender.org/about/license <https://www.blender.org/about/license>`__ for details.