The nodegraph contains a Stats/Info Panel (collapsed by default) also referred to as the IR Panel (legacy name from PopcornFX v2 alpha versions where the panel mainly contained IR information).
This panel now also contains general information on the effect (when viewing the layer graph) or a layer (when inside a layer). Its UI is subject to change in future PopcornFX versions.
Effect & layer information
The Summary tab displays general information on an effect or layer. It displays particle counts, memory usage, renderers… The UI morphs into an “effect” or “layer” view depending on what part of the nodegraph is visualized.
- Effect summary (when in the layer graph)
- Layer summary (when in a layer)
Additional data is displayed when in Developer Mode.
Note: timings and memory usage greatly differ when in ‘Editor’ mode compared to ‘Shipping’ (what gets loaded in the game engine).
The Renderers tab displays effect or layer renderers information.
Renderer batches are displayed and can be selected with the mismatching properties highlighted in red in the property grid.
Some renderers are batched even though some of their properties mismatch, this is defined by PopcornFX Editor rendering code. The following shows an example of several renderers being batched while their Billboarding mode property differs (this is handled by the rendering code without breaking batching, but might differ depending on the target engine):
Additionally, geometry generation time (also referred to as “billboarding”) is displayed.
This panel is subject to UI improvements in future PopcornFX versions to possibly also display resources used by the effect and their layers.
The following IR panel tabs only display information when in a layer.
The Events tab displays layer input and output events along with payload information.
The Compiler tab displays the layer’s IR spawn / evolve instructions and low-level execution detail.
Instructions can be hovered to highlight the node responsible for emitting these instructions in the graph. Selecting a node in the graph also highlights associated instructions in the Compiler tab. Opening templates will also only display instructions emitted by that template:
This panel is mainly used by PopcornFX developers for detecting optimizer leads, regressions and for technical artists / programmers to understand the final result of a graph.
Note: to visualize the final number of instructions, make sure to switch to ‘Shipping’ to apply all effects optimizations. It is possible for SDK integrators to hook simulation interfaces with custom constant folding implementations that can modify the final instruction count.
To get a better understanding of PopcornFX graph compiler & optimzer, check out GDC18’s talk powerpoint available here. Although additional compiler optimizations were added since then, most of what is described in that talk is still valid.
The Backend tab displays backend bytecodes / source depending on the layer’s specified backend (a layer set to ‘GPU’ will display the associated graphics API generated compute shaders).
This panel is currently one of the main places to troubleshoot GPU sim layers that fallback to CPU sim.
- CPU VM backend
- D3D12 backend generated compute shaders
The Storage tab displays particle storage information (memory cost of particles storage-wise and internal storage metadata details).
Note: to preview the final storages, make sure to switch to ‘Shipping’.