RPS Visualizer Tool

December 14, 2022 ยท View on GitHub

Usage

The RPS Visualizer tool can be integrated as a library into applications using RPS and ImGui to visualize various data of the RPS render graphs. /tools/rpsl_explorer makes use of this library and can serve as an example of integration.

Views

There are currently 3 different views available which can be activated from collapsible headers on the left.

  • The "Resources" view shows lifetime and access states of all resources known to the rps render graph. These are e.g. user defined commands, built-ins like resource clears, etc. Transitions are displayed as purple diamonds. Hovering your mouse over the widgets brings up a tool tip showing details about the resources, accesses and transitions.
  • The "Heaps" view shows lifetimes of resources over the same timeline but combined with the memory placements in their heaps. This is intended to intuitively visualize how resources are aliased over the time of the frame.
  • The "Graph" view shows the DAG that RPS builds internally for scheduling. This visualizes the interconnections and dependencies between graph nodes, where each dependency is specified by an edge in the graph.

Controls

ActionDescription
Mouse WheelZoom vertically in the parent view.
CTRL + Mouse WheelZoom horizontally on the current grid w.r.t. the current mouse position on it.
SHIFT + Mouse WheelZoom vertically on the current grid w.r.t. the current mouse position on it (only for the heap and graph views).
Mouse Click + Mouse Movement + Mouse ReleaseSelect a horizontal and vertical (only for the heap view) range for visual highlighting.
CTRL + ZZoom horizontally to the selected range.
CTRL + BZoom vertically to the selected range (only for the heap view).
W/A/S/DMove up/left/down/right by just a tiny amount (Hold for continuous movement).
Mouse Click at graph node or transitionHighlight all incoming and outgoing connections (graph view only).