4f0ec384ce351a7b739871bc9a02f7c7e3ea3259
The dependency graph builder takes the original data-block's recalc flags to tag IDs after the dependency graph has been built, while the evaluation of the graph only re-sets tho recalc flag to 0 only for active dependency graph. This could have caused an inconsistency of the handled tags: for example, if a headless render modifies some object's properties and then renders the scene multiple times without re-creating dependency graph (using Eevee or having Persistent Data, and rendering multiple view layers, for example). This change makes it so the recalc flags from the original ID are only considered by active dependency graph, of when an ID is first evaluated within a non-active dependency graph. This is a bit of a conservative change to avoid possible breakage. In theory it should be possible to never consider original recalc flags for render, and, eventually, also ignore it for the active graphs. This needs to be with more care and, so follow safer approach for now. In practice this change fixes an issue with missing particle hair when rendering second view layer of rlayer_flags_01.blend with Eevee. Pull Request: https://projects.blender.org/blender/blender/pulls/117854
…
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.
Project Pages
Development
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 for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
