Go to file
Kévin Dietrich 3bc44233c0 Cycles: use reference count to detect used shaders
Shaders are only compiled if they are used by some other Node (Geometry, Light, etc.).
This usage detection is done before updating the Scene, however it fails at detecting
Shaders used by Procedurals not known to Cycles (e.g. ones defined by third party
applications), as Procedurals are only updated after the shaders are compiled.

To remedy this, we now use the Node reference counting mechanism to detect whether a
Shader is used and therefore should be compiled.

This removes `ShaderManager::update_shaders_used` as it is not needed anymore, however,
since it would also update the Shader ids, this is now performed in
`ShaderManager::device_update`, and a new virtual `device_update_specific` method was
added to handle device updates for SVM and OSL.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D10965
2021-05-03 01:21:12 +02:00
.github Add Probot Stale configuration file 2019-10-11 14:13:29 +02:00
build_files Add support for building on Linux aarch64 2021-04-20 18:45:46 +02:00
doc Docs: PyAPI: Fix css selector failing on some pages 2021-05-01 01:54:05 -04:00
extern Remove SMAA generating message during compilation. 2021-04-28 08:38:10 +02:00
intern Cycles: use reference count to detect used shaders 2021-05-03 01:21:12 +02:00
release Python GPU: Replace a few calls of the bgl module with gpu 2021-05-01 12:12:58 -03:00
source Merge branch 'blender-v2.93-release' 2021-05-02 16:40:40 -04:00
tests Added Operator tests: unsubdivide, shading, vertex connect and mark seam 2021-04-29 20:15:11 +05:30
.arcconfig Fix .arcconfig not working with latest arcanist version 2020-03-01 22:35:31 +01:00
.clang-format Clang Format: bump the minimum version to 8 2021-04-01 11:18:05 +11:00
.clang-tidy Cleanup: enable modernize-use-equals-default check 2021-04-08 11:07:27 +02:00
.editorconfig editorconfig: correct indent size 2019-04-17 13:34:46 +02:00
.git-blame-ignore-revs Cleanup: git-blame-ignore-revs: Update policy & commits 2021-01-29 13:20:32 +05:30
.gitignore Compositor automated testing 2021-03-26 16:15:02 +01:00
.gitmodules Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
CMakeLists.txt macOS: Fix unknown -Wsuggest-override warning 2021-04-24 01:54:30 +05:30
COPYING
GNUmakefile GNUmakefile: add 'check_mypy' convenience target 2021-04-14 11:36:46 +10:00
make.bat Build: add "make test" command for Windows, output log file 2019-09-12 20:23:03 +02:00
readme.rst Blender README: Fix the full license name. 2021-04-09 12:39:33 +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 General 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.