ID 433277 - Geolib3-MT: Op execution root is not inherited by input child locations

Follow

Problem summary:

When using the Geolib3-MT runtime, any action that causes the Op execution root to be reset (e.g. calling Cook Interface `resetRoot()`) is ineffective for input-scene-derived locations below immediate children. The reset should persist for all descendants.

Steps to reproduce:

1. Add a PrimitiveCreate that creates a mesh at /root/world/geo/a/b/c
2. Add an OpScript with executionMode set to "immediate" and applyWhere set to "at all locations".


if Interface.GetOutputLocationPath() == "/root/world/geo" then
  Interface.ResetRoot()
end
print("Abs Path: " .. Interface.GetOutputLocationPath())
print("Rel Path: " .. Interface.GetRelativeOutputLocationPath() .. "\n")
Interface.SetAttr("relativeOutputLocationPath", StringAttribute(Interface.GetRelativeOutputLocationPath()))

Add the necessary CameraCreate node and a RenderSettings node (and any other configuration) and render with both the 'Geolib3-MT' and 'Classic' runtimes in turn.

Expected behaviour:

All paths should match across runtimes.

The relative output location paths printed for descendants of /root/world/geo should all be relative to that location (i.e. 'a', 'a/b' and 'a/b/c').

Actual behaviour:

The 'Classic' runtime prints correct paths for all locations, but 'Geolib3-MT' prints the relative path from /root for 'b' and 'c' (i.e. 'world/geo/a/b' and 'world/geo/a/b/c').

Workaround:

No known workaround.

Tested versions/platforms:

  • 3.5v1 - Affected

Introduced with 'Geolib3-MT' runtime.

    We're sorry to hear that

    Please tell us why