How to Capture a Virtual Monitor
How to Capture a Virtual Monitor
Bring another application's desktop output into Backstage as a live asset using a Virtual Desktop capture. Backstage captures frames from a virtual monitor created by the Brainsalt Indirect Display Driver (IDD) and makes them available as a real-time video source for layers, sequences, and the node graph.
New in Backstage May 2026. Requires BSM-SystemService and the Brainsalt IDD driver to be installed on the server.
[USER-ACTION-REQUIRED: Attach a screenshot of the Virtual Desktop asset Inspector showing the Name, Monitor ID, Color Depth, Test Mode, and Status sections]
Before you start
- BSM-SystemService is installed and running on the server
- The Brainsalt IDD driver is installed (creates virtual monitor entries in Windows Display Settings)
- At least one virtual monitor is visible in Windows Display Settings
- The application you want to capture is running and its window is extended or mirrored onto the virtual monitor
Steps
1. Start Backstage
Virtual Desktop assets are auto-discovered at startup. Backstage queries BSM-SystemService for all registered IDD virtual monitors and creates one Virtual Desktop asset per monitor automatically. You do not need to add them manually.
2. Find the asset in the Assets panel
Open the Assets tab in the left panel. Look for the Virtual Desktop category. Each detected virtual monitor appears as a separate asset entry. If no IDD monitors were found at startup, this category will not appear.
3. Verify connection status
Select the Virtual Desktop asset. In the Inspector, check the Status section. When connected, you will see the update rate, driver resolution, refresh rate, DXGI format, and frame transport mode. If the status reads "driver not connected", confirm BSM-SystemService is running and the IDD driver is loaded.
4. Assign the asset to a layer
Use the Virtual Desktop asset like any other video asset. Drag it onto a channel in the Sequencer, or assign it to a layer via the node graph. The captured desktop content streams in real time at the IDD monitor's refresh rate.
5. (Optional) Configure color depth
In the Inspector, use the Color Depth dropdown to match the virtual monitor's output format. The default is 8 bpc BGRA (standard desktop). Choose 10 bpc or 16-bit float (HDR) if the source application outputs HDR content.
6. (Optional) Adjust latency settings
The skip/repeat timing window is configured globally in Settings > Virtual Desktop. See the Options explained table below for details. The defaults work well for most installations.
Options explained
Inspector settings (per asset)
|
Setting |
Description |
Values / Range |
|---|---|---|
|
Name |
Display name of the asset. Editable. |
Text |
|
Monitor ID |
Persistent ID of the virtual monitor registered by BSM-SystemService. Assigned automatically at discovery. Change only if rebinding to a different IDD monitor. |
Integer (0+) |
|
Color Depth |
Pixel format for the captured texture. Must match the virtual monitor's output format for correct color. |
Dropdown: 8 bpc BGRA (default) | 10 bpc RGB + 2 bpc A | 16-bit float per channel (HDR) |
|
Test Mode |
Diagnostic mode for verifying pipeline smoothness. Synthetic replaces the desktop image with a moving bar pattern from the driver. Overlay draws the bar on top of the real desktop content. |
Dropdown: Off (DWM content) (default) | Synthetic (driver bar only) | Overlay (DWM + bar) |
Status section (read-only, per asset)
|
Field |
Description |
Values / Range |
|---|---|---|
|
Update rate |
Measured frame delivery rate from the driver, sampled over a 2-second window. |
fps (read-only) |
|
Driver resolution |
The resolution and refresh rate committed by the IDD driver, plus the DXGI pixel format. |
e.g. 1920x1080 @ 60 Hz, BGRA8 |
|
Frame transport |
Whether the capture uses the zero-copy path (DWM pool surfaces shared directly) or the copy path (driver-owned textures with per-frame copy). |
Direct (zero-copy) | Copy (driver-owned textures) |
Global latency settings (Settings > Virtual Desktop)
|
Setting |
Description |
Values / Range |
|---|---|---|
|
Latency window min (frames) |
Lower bound of the latency window in producer-frame units. When the captured frame's age falls below this value, Backstage holds the previous frame (Repeat) to avoid displaying content that arrived too recently relative to the producer cadence. |
0.0 – 4.0 frames (default: 0.5) |
|
Latency window width (frames) |
Width of the acceptable latency window above the minimum. When the captured frame's age exceeds min + width, Backstage advances to the next available frame (Skip). Slightly above 1.0 prevents steady-state drift from grazing the upper bound. |
0.0 – 5.0 frames (default: 1.1) |
Skip/Repeat and frame blending: When the producer (IDD driver) and consumer (Backstage) run at different rates, Backstage automatically skips or repeats frames to stay within the latency window. If frame blending is enabled on the channel, skip and repeat transitions are smoothed across multiple frames instead of producing a hard jump.
Burst mode: When the IDD driver delivers frames irregularly (for example, during a DWM stall or when content arrives in bursts), Backstage automatically switches from the window-based skip/repeat logic to burst mode. In burst mode, it simply displays the most recently published frame. Normal pacing resumes automatically once the driver returns to steady delivery.
Common Mistakes
-
No Virtual Desktop category in the Assets panel — BSM-SystemService is not running or the IDD driver is not installed. The category only appears when at least one virtual monitor is detected at startup. Install the driver, start the service, then restart Backstage.
-
Asset shows "Unavailable — monitor not connected" — A saved project references a virtual monitor ID that is not currently registered by the driver. The IDD driver may not be loaded, or the virtual monitor was removed. The asset is preserved so you can delete or rebind it.
-
Status reads "driver not connected" — The asset exists but the stream cannot reach the driver. Check that BSM-SystemService is running and that the IDD driver is loaded in Windows Device Manager. Backstage retries the connection automatically every 500 ms.
-
Black or stale frame after a fullscreen app exits — When a fullscreen application exits, the Windows Desktop Window Manager (DWM) rebuilds its swap chain. Backstage detects this and automatically re-opens the shared resources. There may be a brief black flash during the transition.
-
Color Depth mismatch causes wrong colors — The Color Depth setting must match the actual output format of the virtual monitor. If the monitor outputs 10-bit but the asset is set to 8 bpc, colors will be incorrect. Check the DXGI format reported in the Status section and match the Color Depth dropdown accordingly.
Tips
-
Use Test Mode > Synthetic to verify render pipeline smoothness independently of your source application. The moving bar pattern is generated by the driver at the exact producer cadence, making frame drops or timing issues easy to spot.
-
Virtual Desktop assets are saved with the project. When loading a project on a different server, Backstage matches saved assets to available monitors by Monitor ID. Unmatched assets appear greyed out as unavailable.
-
The zero-copy frame transport path (Direct) shares desktop surfaces directly into Backstage without a per-frame GPU copy, reducing latency and GPU load. This mode is selected automatically by the driver when possible.
-
If Backstage starts before the IDD driver is ready, the stream retries the connection every 500 ms until it succeeds. No manual intervention is needed.
Related
Combine multiple Capture Inputs to one Asset — Combine multiple capture inputs into a single asset.
Supported Capture Hardware — List of supported capture hardware for Backstage.
Capture Input — Capture Input asset reference (Datapath capture cards).
Render from Unity into Backstage — How to render from Unity into Backstage (another live-source workflow).
Assets — Assets reference overview.
