ID 534259 - Op graphs with diamond connections cause slow initialisation of Foresight+ Live Renders

Follow

Problem summary:

Op graphs with diamond connections cause slow initialisation of Foresight+ Live Renders. The initial Op graph population in the render process for evaluating live render updates performs redundant traversals caused by rejoining Op graph paths, meaning that mutliple diamond connections in a linear chain result in an exponential increase in computation.

Steps to reproduce:

Construct a node graph (example project attached) that renders a trivial scene, and that has many (20) serially repeated groups containing a diamond connection (for example an AttributeSet whose output is connected to two separate Merge nodes, one of which feeds into the other) and perform a Live Render (ensuring Foresight+ is not disabled).

Expected behaviour:

The first pass of the Live Render commences promptly: at least as quickly as it does with Foresight+ disabled.

Actual behaviour:

The first pass of the Live Render is delayed, performing a single-threaded computation in the render process. The delay increases exponentially with the number of diamond connections.

Workaround:

Disable Foresight+.

Tested versions/platforms:

  • 4.5v1+ - Affected (introduction of Foresight+)

    We're sorry to hear that

    Please tell us why