Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Recovery can also be paired with the checkpointing options described above. In the case of a time limit, this basically serves as an extension to the original time limit. Incremental renders can be broken into an arbitrary number of time slices this way. Note that each recovery requires the scene and all of its assets to be reload, however, so care should be taken with this. Additionally, this feature is only supported for OpenEXR files.

 

System Commands

RenderMan can call a system command after a checkpoint using Option "checkpoint" "string command"; this can also be specified through the rendermn.ini file with /prman/checkpoint/command. If system calls are enabled, then after a checkpoint has been written, the specified command will be called. This is synchronous; the rendering threads are quiescent while this runs and will not resume again until the process returns, avoiding possible race conditions if the command takes a while.

A limited amount of substitution is available. The token %i will be replaced with the current increment, zero-padded to 5 digits. The token %e will be replaced with the elapsed time in seconds, zero-padded to 6 digits. The token %r will be replaced with the reason for this update to the checkpoint files (either completely finishedexiting early due to exitat option, or a normal checkpoint). Literal % characters may be inserted with %%.

Signals

On Linux and OSX, prman will listen for the HUP and USR1 signals.  If checkpointing was enabled for the render then when prman receives a HUP signal it will attempt to write a checkpoint and continue rendering.  If it receives the USR1 it will write a checkpoint and then begin an orderly shutdown.  This is similar to the behavior with the internal checkpoint interval and exitat parameters, but allows these to be externally triggered such as by a pipeline queuing system.  The Windows operating system does not support these signals, so this feature is not available on that platform

Workflow

While the most basic use for checkpointing and recovery is simply to be able to resume a render in case of a failure, checkpointing with incremental renders enables some powerful new workflows.

...