Performance Issues
Performance problems in Backstage depend heavily on the specific installation: the number of outputs, resolution, media format, layer count, and hardware generation all play a role. This guide helps you systematically narrow down the category your issue falls into, then provides targeted steps for each one.
Before you start
-
You have a running Backstage project that exhibits a performance problem (dropped frames, stuttering, high latency, or visual artifacts under load).
-
You can access the Performance Overview window and the Settings window in Backstage.
-
You know the basic specs of your server: GPU model, total VRAM, number of outputs, and storage type.
Step 1: Open the Performance Overview
The Performance Overview window is your primary diagnostic tool. It shows real-time metrics for each render group in your project.
-
Open the Performance Overview window from the Window menu if it is not already visible.
-
Select the render group tab that corresponds to the outputs you are troubleshooting.
-
Note the key render group metrics (see table below).
-
Check the VSYNC +/− plot at the bottom. A stable, flat line indicates healthy sync timing. Spikes or drift point to output sync problems.
-
Enable the on-screen overlay by clicking OSD in the Performance Overview. This displays the same metrics directly on your physical outputs — useful when you cannot see the Backstage UI during testing.
-
Click Reset to clear min/max history and start fresh measurements from a known baseline.
Render group metrics:
|
Metric |
What it tells you |
|---|---|
|
FPS |
Frames per second the render group is producing. Compare to your target output refresh rate. |
|
FRAME |
Total frame time in milliseconds. Should stay below your frame budget (e.g. 16.6 ms for 60 Hz). |
|
GPU |
GPU rendering time in milliseconds. If this approaches your frame budget, the GPU is the bottleneck. |
|
VSYNC |
Time spent waiting for vertical sync. Large or erratic values indicate output sync issues. |
Per-stream metrics (shown for each playing video stream):
|
Metric |
What it tells you |
|---|---|
|
Scheduler Time |
Timing accuracy of the frame scheduler. |
|
Latency |
End-to-end latency from frame read to display. |
|
Playback Buffer Fill |
Percentage of the playback buffer containing prepared frames. Low values mean storage or decode cannot keep up. |
|
Unintentional Skips / Jumps |
Frames dropped because they were not ready in time. Any non-zero value confirms a performance problem. |
|
Frame Missing / Read Error |
Frames that could not be read from storage. Points to a storage bandwidth or file system issue. |
|
Unavailable / Unfinished Transfers |
Frames not yet transferred to the GPU. Points to a CPU-to-GPU transfer bottleneck. |
Colors are meaningful: green indicates healthy values, yellow indicates values drifting outside normal range.
Step 2: Check GPU Memory
In the Performance Overview, check the Graphic Memory Consumption section:
-
Memory per heap — total used vs. available VRAM as a percentage. Green is under 50%, yellow is 50–90%. Above 90% you are at risk of out-of-memory failures.
-
Memory per category — breaks down VRAM into Asset, AssetPreBuffer, VideoFramePool, Projector, Display, Surface, LogicalOutput, and other categories. Identifies which part of your project consumes the most memory.
-
Memory per video memory pool — shows the playback buffer pool allocation and fill level.
If total VRAM usage exceeds 80%, see "High GPU memory usage" below.
Diagnosis by symptom
Dropped frames or low frame rate
Symptom: FPS is below your target refresh rate, or the Unintentional Skips / Jumps counter is incrementing.
Check the GPU metric first. If GPU time is close to or exceeds your frame budget:
-
Reduce the number of simultaneously playing layers. Each Sequence with a different Layer number adds a render pass per output.
-
Lower the output resolution if your projectors support it.
-
Check whether blending is enabled on Projectors that do not need it. Blending adds GPU workload on every Projector where "Enable Blending" is active.
-
If using compressed video formats (H.264, HEVC, AV1, VP9, HAP), decode performance is unpredictable under load. Convert to an uncompressed format (DPX, SBSM) or NotchLC for production playback.
If GPU time is low but frames are still dropping, the bottleneck is in storage or CPU-side frame preparation:
-
Check the Playback Buffer Fill per stream. Consistently under 50% means your storage cannot deliver frames fast enough.
-
Open
Settings → Media Playback → Video → Image Sequenceand increase Playback buffer size, Number of pre-buffered frames, and MB/s per Core to give the system more headroom. -
For compressed video, check the same settings under
Settings → Media Playback → Video → Compressed Video.
High GPU memory usage
Symptom: VRAM usage above 80%, or visual artifacts and crashes under load.
-
Open
Settings → GPU Memoryand set Mode to Media Server for production playback. This optimizes VRAM use for static-scene linear playback rather than fast scene editing. -
Adjust Pool Size (%) — lower this if Projector, Surface, or LogicalOutput categories are competing for space.
-
Reduce output resolution where possible. Each output and Projector at a given resolution allocates proportional VRAM.
-
Reduce the number of pre-buffered frames in Settings → Media Playback → Video if the AssetPreBuffer category dominates memory usage.
Slow asset loading or long startup
Symptom: Assets take a long time to appear on outputs when a Sequence starts, or there is a noticeable delay at project load.
-
Increase Number of pre-buffered frames in Settings. This loads more frames into memory before playback begins, reducing visible startup delay.
-
Check storage throughput. Uncompressed 4K content at 60 fps requires several GB/s of sustained read bandwidth per stream. Use fast NVMe storage or a RAID array designed for media playback.
-
For compressed video, check
Settings → Media Playback → Video → Compressed Video → Hardware Accelerationper codec. Switching from FFMPEGSoftware to FFMPEGVulkan or VulkanVideo enables hardware-accelerated decode. Requires a software restart.
Multi-output sync issues
Symptom: Outputs show different frames at the same time, visible tearing, or erratic VSYNC spikes in the Performance Overview.
-
In
Settings → Media Playback, ensure Align start to V-Sync is enabled. -
In
Settings → Output Rendering, ensure Wait for v-sync is enabled. Disabling it causes tearing. -
For multi-server sync, verify PTP (IEEE 1588v2) is configured in Settings → Clock. All servers must lock to the same PTP grandmaster or to the primary Backstage server's self-generated clock.
-
Verify that all outputs in the same render group run at the same refresh rate. Mismatched rates cause periodic sync drift regardless of software settings — check Windows display settings and your GPU control panel.
Capture input latency or dropped capture frames
Symptom: Live capture input (Datapath, DeckLink, Rivermax) has visible latency, or the Performance Overview shows Requested Skips on the capture stream.
-
Requested Skips on a capture stream are normal — they indicate Backstage intentionally dropping a capture frame to stay synchronized. A high skip rate suggests the capture card frame rate does not match the output refresh rate.
-
Check
Settings → Capture Inputfor capture-specific settings. -
Ensure the capture card signal format matches what the source is actually sending. A resolution or frame rate mismatch forces format conversion, adding latency.
Options explained
|
Setting location |
Option |
What it does |
|---|---|---|
|
|
Mode (Realtime 3D / Media Server) |
Controls how Backstage allocates and reuses GPU memory. Media Server mode minimizes allocations for stable playback. |
|
|
Pool Size (%) |
Percentage of total VRAM reserved for the video playback buffer pool (5–80%). |
|
|
Pool Block Size (MB) |
Size of individual allocation blocks in the video memory pool. Auto lets the GPU decide. |
|
|
Number of pre-buffered frames |
Frames loaded into GPU memory before playback starts. Higher = smoother start, more VRAM used. Default: 3. |
|
|
Playback buffer size (frames) |
Number of frames buffered during playback. Higher = more resilience to storage hiccups. Default: 5. |
|
|
MB/s per Core |
Estimated storage bandwidth per CPU core, used to distribute decode work. Increase if your storage exceeds the default assumption. |
|
|
Hardware Acceleration (per codec) |
Decoder type: FFMPEGSoftware (CPU), FFMPEGVulkan, or VulkanVideo. Requires a software restart. Hardware modes significantly reduce decode time on supported GPUs. |
|
|
Align start to V-Sync |
Synchronizes the playback scheduler start to the vertical sync signal, preventing latency drift. |
|
|
Wait for v-sync |
Controls whether the render loop waits for vertical blanking before presenting frames. Disabling causes tearing. |
|
|
OSD |
Toggles the on-screen performance overlay on physical outputs. |
|
|
Reset |
Clears all min/max/average history for fresh measurements. |
Common Mistakes
-
Using compressed video in production. Compressed codecs (H.264, HEVC, HAP, AV1, VP9) are supported for testing only. Their decode performance depends on bitrate, GOP structure, and system load — dropped frames under load are expected. Convert all production media to uncompressed formats (DPX, SBSM) or NotchLC.
-
Leaving GPU Memory Mode on Realtime 3D during the show. This mode keeps VRAM allocated for fast scene editing. If you are not modifying Projectors or Surfaces during playback, switch to Media Server mode (or leave on Auto).
-
Mismatched output refresh rates. Outputs in the same render group running at different refresh rates (e.g. 60 Hz vs 59.94 Hz) will produce periodic sync drift regardless of software settings. Verify rates in Windows display settings and your GPU control panel.
-
Ignoring Playback Buffer Fill. A consistently low buffer fill is the clearest sign that storage throughput is the bottleneck, not GPU performance. Adding GPU power will not help if frames cannot be read from disk fast enough.
Tips
-
Use the OSD overlay during on-site commissioning. It displays performance metrics directly on the projected output without needing access to the Backstage UI.
-
The Scene:Performance node in the Node Editor exposes render group performance data as a Pack output. Use it to build automated monitoring — for example, triggering a warning when FPS drops below a threshold.
-
When diagnosing intermittent issues, click Reset in the Performance Overview then run your show sequence once. The max values capture the worst-case spikes.
-
For multi-server installations, check PTP lock status before investigating per-server performance. A server that has lost PTP lock will show erratic VSYNC timing even if local performance is fine.
-
The Log window records warnings related to frame drops, memory allocation failures, and decode errors. Check it alongside the Performance Overview for additional context.
-
A single uncompressed 4K DPX stream at 60 fps requires approximately 1.5 GB/s of sustained read bandwidth. Plan your RAID or NVMe configuration accordingly.
Related
-
Performance Overview — reference for all Performance Overview metrics and controls
-
Settings — reference for all Settings window options
-
GPU Output — output configuration including bit depth and sync
-
Log — reference for the Log window
-
Supported Media Types — full list of supported media formats and production recommendations
-
Supported Capture Hardware — supported capture card types and configuration
