Skip to content

Virtual.ink documentation

Troubleshooting

The Troubleshooting page is the recovery center for Virtual.ink. It combines section-level resets, broader desktop-only cleanup actions, diagnostics, and support tools in one place.

When to Use This Page

  • The camera feed is not appearing despite the device being connected
  • Effects are producing unexpected results and you are not sure which setting changed
  • The app feels slow or unresponsive
  • You need to send detailed logs to support for help with a specific problem

Section Resets

The top part of the page is organized around targeted resets so you do not have to wipe the whole app first.

Section Reset action What it affects
Dashboard Reset dashboard Dashboard tiles and UI preset layouts
Quick Nav Reset Quick Nav Quick Nav presets and saved shortcut-bar layout
Effects Reset effects Live effect parameters
Effects presets Reset effects presets Saved effect preset groups and cycling state
Live Setup Reset live setup Camera, liveview, saving, replay, and related live-setup values
Virtual.ink Reset Virtual.ink Reapplies the app's current Virtual.ink factory defaults in one pass

These resets are the safe first line of recovery. They are intended to restore behavior without deleting datasets or other local media.

Set Current State As Default

On the local desktop app, several reset cards can also write the current state back into shipped defaults.

This is used when you want the current setup to become the new factory baseline for this workstation or deployment image.

That desktop-only default-push workflow exists for:

  • Dashboard
  • Quick Nav
  • Effects
  • Effects presets
  • Live Setup

Destructive Recovery Actions

The lower danger-zone section is different. These actions remove local data and should only be used intentionally.

Action What it deletes What it keeps
Reset all settings Saved app, module, and UI settings JSON files Datasets, media files, and asset files stay in place
Full wipe Local settings, datasets, generated assets, queue history, backup records, and share logs External backup destinations are not deleted

After either destructive action, Virtual.ink reloads its current factory defaults.

Send Logs

The Send Logs panel at the bottom of the page lets you submit diagnostic information to Xangle support:

  1. Click Send Logs to prepare the log bundle.
  2. The app gathers recent logs, system information, and configuration snapshots.
  3. The bundle is uploaded to the Xangle support portal.

Include a description of the problem when contacting support so the logs can be matched to your report.

Debug Overlay

For real-time diagnostics during a session, use the debug overlay in the Live View instead. Press D on the keyboard to toggle it. The debug overlay shows live FPS, GPU status, device capabilities, and current effect values without leaving the canvas.

Low Frame Rate on Laptops (Hybrid GPU / MUX Switch)

On laptops with both an Intel integrated GPU and an NVIDIA discrete GPU, the laptop display is typically wired through the Intel GPU by default (Optimus or hybrid mode). This means the Chromium compositor and display output run on the weaker Intel GPU even when Virtual.ink's OpenGL rendering uses the NVIDIA card - causing severe frame drops (20-30 fps instead of 60+).

The fix is to switch the laptop into discrete GPU mode so the display is driven directly by the NVIDIA card, eliminating the cross-GPU texture copy bottleneck.

ASUS ROG (and other ROG / TUF laptops)

  1. Open ASUS Armoury Crate (preinstalled on ROG and TUF laptops).
  2. Go to the GPU or System Configuration section.
  3. Change GPU Mode from Standard (hybrid/Optimus) to dGPU (may also be labeled Ultimate or Discrete Graphics).
  4. Reboot when prompted.

After the reboot the display is driven directly by the NVIDIA GPU and Virtual.ink will run at full frame rate.

Other laptop brands with a MUX switch

Brand App Setting
MSI MSI Center GPU Switch → Discrete GPU
Lenovo Legion Lenovo Vantage Hybrid Mode → OFF, then reboot
Razer Synapse System → GPU Mode → Dedicated
HP Omen Omen Gaming Hub GPU Mode → Discrete

Laptops without a MUX switch

If the laptop has no MUX switch option, connect an external monitor directly to the HDMI or DisplayPort output - these ports often route straight to the NVIDIA GPU. Run Virtual.ink on that external display to avoid the hybrid GPU bottleneck.

Note on battery life: Discrete GPU mode keeps the NVIDIA card active at all times, which shortens battery life. For a plugged-in painting station this is not a concern.

Second Camera Stuck at Low Frame Rate

If the second camera feed runs at 4-5 fps instead of the expected 25 fps, the capture device is almost certainly a low-cost HDMI dongle based on the MacroSilicon MS2109 chip (sold under many generic brand names such as "USB Video", "HDMI Capture", or similar). These devices have two known limitations:

  • They ignore MJPG mode requests and always deliver uncompressed YUY2, regardless of the MJPG toggle state in Live Setup.
  • Uncompressed YUY2 at 1920x1080 requires more USB bandwidth than these dongles can reliably sustain, so they self-throttle to around 5 fps.

Option 1 - Lower the resolution: Set the second camera to 720p (1280x720) in Live Setup. The MS2109 can usually deliver 25 fps at that resolution in YUY2.

Option 2 - Replace the dongle: Use a quality capture card from the recommended list. Any card in that list handles 1080p25 reliably in both YUY2 and MJPG modes.

Tips

  • Try the narrowest reset first: Effects, Live Setup, Dashboard, or Quick Nav.
  • Use Reset Virtual.ink when several Virtual.ink-specific surfaces are out of sync and you want one broader reset without deleting local media.
  • Use Reset all settings when you want to clear saved configuration files but keep datasets and assets.
  • Use Full wipe only when you intentionally want to remove the local workspace contents as well as settings.
  • Logs are most useful when captured immediately after the problem occurs, before restarting the app.
Powered by Beeboo · 260412.131046