Available in Beta 2, RenderMan 24.0 will include an entirely new diagnostics sub-system, re-written from the ground up to incorporate live, configurable statistics.
Legacy Diagnostics will continue to be supported, unchanged, allowing customers to rely on the old system while transitioning to the new system. |
The RenderMan stats system has undergone an overhaul across the board, from the internal framework to the final user-facing results. The new system has been designed from day one for interactivity and extensibility. In other words, live stats with open-ended presentation options.
Much like the best VFX, the new stats system will mostly go unnoticed as you are running RenderMan 24.0. If you render to the Image Tool "it" you will see an improved HUD which includes overview stats for the in-progress render. Additionally, you may opt-in to other presentation options such as a JSON report or CSV telemetry output. These output options, or Listeners, are implemented as part of an extensible plugin system for diagnostic presentation. A Listener plugin attaches to a running render and registers interest in some or all of the metric data being collected by the renderer. As the Listener receives data from the renderer it is free to analyze and process the data as needed for its particular application.
RenderMan stats now provides access into the current state of render, whether it be a DCC preview render or a farm render. Out of the box, live stats will be displayed in the HUD of Pixar's Image Tool it
with all bridge products. Optionally the system can be configured to stream live data via either gRPC or a WebSocket client.
A new end-of-render report is also available as part of the default set of presentation plugins. Diagnostic data is written to a hierarchical JSON file, including data accumulated across checkpoints and canceled renders. The content of the output file is also configurable to include a few, most, or all of the metrics available in the system.
When the end-of-render report is enabled diagnostics are automatically written out on checkpoint exits and read back into the database on recovered renders.
The collection of stats is built into the renderer so there's no need to "enable" the stats system. On the other hand, Listeners need to be explicitly enabled and configured in order to introspect the data being collected. Currently, an "ini" configuration file is the primary mechanism through which the stats system and its listeners are configured.
Note that applications such as the renderer are no longer responsible for maintaining the layout or presentation of the data they are gathering. Their job is simply to report data updates. The stats system takes care of collation and synthesis and Listeners handles the data presentation.