ID 583745 - Render plug-in functions `stopLiveEditing()` and `stop()` are not called when cancelling a Foresight+ Live Render

Follow

Problem summary:

On cancelling a Live Render, the Render plug-in's `stopLiveEditing()` and `stop()` functions are not called prior to the process being terminated. This prevents Render plug-ins from performing teardown/cleanup operations.

Katana sessions configured to disable Foresight+ Live Rendering (`KATANA_DISABLE_FORESIGHT_PLUS=1`, not recommended) are not affected.

Steps to reproduce:

Using a Renderer plug-in that implements the `stop()` and `stopLiveEditing()` Render plug-in functions, start a Live Render and cancel it (e.g. using the Esc key) during the live update phase (following the initial scene traversal).

Expected behaviour:

The Render plug-in's `stop()` and `stopLiveEditing()` functions are executed on cancellation.

With Foresight+ disabled, the render is considered complete:

Render completed in [x] s.

Actual behaviour:

The Render plug-in's `stop()` and `stopLiveEditing()` functions are not executed on cancellation. The process is terminated (with signal 15 [Linux]) and the render is considered cancelled:

Info: Terminating process with termination signal 15.
Render cancelled. Time elapsed: [x] s

Workaround:

(Not recommended) Disable Foresight+ by setting  the `KATANA_DISABLE_FORESIGHT_PLUS` environment variable to 1.

Tested versions/platforms:

  • Linux, all versions with Foresight+ (4.5+) - Affected.

Customer version/platform:

4.5v7, 7.0v1 (Linux)

    We're sorry to hear that

    Please tell us why