Page MenuHome

Fix T78264: Auto Render stops working after rendering manually
ClosedPublic

Authored by Sergey Sharybin (sergey) on Jul 1 2020, 1:01 PM.

Details

Summary

Was caused by weird and feedback-loop based issue from a long time ago.

The auto-render was only happening for nodes which are tagged for exec.
This tag is assigned by edit operations on the tree (for example, when
adding or removing links). It is also set in the render pipeline for
nodes which are to be executed.

The issues comes from the fact that "life updates" during editing did
not clear the need_exec flag, ever. This made it so Auto Render was
working as expected. However, rendering the scene resets need_exec
flags at the end of rendering using ntreeCompositClearTags().
The actual need of such clear is not very clear, but it was making it
so Auto Render does not work after render.

To my knowledge the flag didn't really meant that the node is connected
to the output, so it couldn't have acted as attempt to ignore rendering
of an unused scene. It also should be possible to auto-render even if
node tree itself was never altered.

Long story short: lets ignore need_exec flag in auto-render check and
render scene node if the scene is used by the node.

Diff Detail

Repository
rB Blender

Event Timeline

Sergey Sharybin (sergey) requested review of this revision.Jul 1 2020, 1:01 PM
Sergey Sharybin (sergey) created this revision.

Have not tested it, but it sounds reasonable.
I'm not at my desk anymore today. I can test it tomorrow, but I'm fairly sure you tested this well enough.

source/blender/editors/space_node/node_edit.c
1431
This revision is now accepted and ready to land.Jul 1 2020, 1:14 PM