Windows Remote Desktop Connection

ImFusion applications require a GL context to run shaders etc. This works well with TeamViewer, VNC, etc., but not with the Remote Desktop Connection under Windows.

The problem with RDP is that the local GPU on the client side is used for some rendering when you launch an application through an RDP session. The solution is to launch the ImFusion Suite before you connect to the host, which might be tricky.

One option is a batch script:

@echo off
for /f %%i in ('qwinsta ^| findstr /C:">rdp-tcp#"') do set RDP_SESSION=%%i
set RDP_SESSION=%RDP_SESSION:>=%
tscon %RDP_SESSION% /dest:console
timeout /t 5 /nobreak > NUL
start "IMF" "C:\Program Files\ImFusion\ImFusion Suite\Suite\ImFusionSuite.exe"

It disconnects all RDP sessions currently open, waits five seconds, and executes the ImFusion Suite (purely locally). You have to do the following:

  • connect to your host and run this script - the connection will be terminated
  • wait more than 5 seconds
  • reconnect - the ImFusion Suite should run with a local GL context, and the content of the views is passed via RDP pixel by pixel

Update: Now it’s possible to directly launch OpenGL stuff through a remote desktop connection, if you have an NVIDIA GPU: