Houdini 21.0 Solaris and Karma

Render statistics

How to view various statistics about the render process of an on-going render or rendered image.

On this page

Overview

During rendering, Karma saves a variety of statistics about the render process. When the render is completed, the husk render utility saves the statistics as metadata in the rendered EXR image.

You can extract and view the render statistics for on-going and completed renders using the following features.

Render stats sidebar

In the render gallery viewer, double click an image or on-going render in the render gallery to open it in the viewer, then click the render stats icon to show the render stats sidebar.

You can also use the render stats sidebar in the standalone image viewer (MPlay).

In the render stats sidebar, you can press ⌃ Ctrl + = and ⌃ Ctrl + - to zoom the size of the stats graphics. You can press ⌃ Ctrl + 0 to reset to the default zoom level.

(To display render stats for third party (non-Karma) renderers, see implementing render stats for third party render delegates.)

Render report

The renderstatsreport utility generates an HTML render report that lists statistics extracted from a rendered EXR file (Learn more).

Performance section

The Performance section is of particular interest and provides an overview about render times, rays sent, memory allocation and primvars.

Parameter Description

Elapsed

This is the time that was required to render the image.

Load Time

The time it took to load the USD scene.

First Pixel

The time from processing the scene to rendering the first pixel.

Load Memory

The memory after loading the USD scene, but before rendering.

Peak Memory

This value includes all the libraries and executables that are required to run the program. For example, libpxr_usd.so (11MB) is required to process USD scenes. libpxr_usdImaging.so (9MB) is required for USD Hydra. libHoudiniGEO.so (261 MB) is required for Houdini geometry processing, libintelocl.so.2023.15.3.0 (120 MB) is required for OpenCL, libopenvdb_sesi.so.11.0.0 (8MB) is for OpenVDB processing.

These all add up and are a base memory requirement regardless of the scene complexity.

Peak Raster Memory

Hydra requires that the render delegate allocate rasters for every AOV. This is the peak memory used by these rasters.

Primvar Cache Items

This is the memory that Karma uses to store primvar (geometry values). So, real32[3] N is the memory used by Karma to store normals for all geometry in the scene. If the value is dimensionless, it’s given in bytes. With values >1024, you’ll see kB or MB units.

Time Spent

The various values are the sum of the times for all threads given in seconds. So, if there are 12 threads/cores and the time reported is 24 seconds, that would be roughly be 2 seconds of wall clock time. It’s not perfectly linear, but once the first pixel is computed, the renderer is able to scale close to linearly based on the number of cores.

Render overlay utility

The renderstatsoverlay utility generates a (possibly resized) JPG or PNG with render stats burned into it (Learn more).

The utility has options for various ways of burning the stats into the image.

Extracting render stats from an EXR file as JSON

You can extract the raw image metadata from an EXR as JSON using the iinfo utility included with Houdini:

iinfo -J example.exr

Solaris and Karma

Solaris and USD

Karma

  • Karma

    Houdini’s Physically Based USD Renderer.

  • Karma XPU

    Houdini’s fast and modern XPU render engine.

  • Color management

    Learn more about OCIO, color spaces, gamma and tone mapping.

  • Render statistics

    How to view various statistics about the render process of an on-going render or rendered image.

Karma User Guide

Look Development

  • MaterialX

    Houdini has VOP node equivalents of the MaterialX shader nodes. You can build a shader network using these nodes, or import an existing MaterialX-based shader, and use them with Karma (Houdini’s USD renderer).

  • UDIM paths

    You can encode different tiles of a texture space into different texture files, each with its own resolution. You can then specify a texture filename such as kaiju.exr, and Houdini will replace the token with the specific tile address at load time.

  • Shader translation

    Describes the Solaris shading framework, including shader node translation to USD primitives.

  • Shotbuilder tools

    Multi-Shot Pipeline in a Box.

Procedurals

Supporting documents