Why does Remote Desktop Connection produce green screens?

Hi all, I understand that NVIDIA does not recommend using RDP for cloudXR but instead recommends VNC, NICE DCV and Teradici, but I would like to understand exactly why does RDP cause the issue that it does and what differentiates it from the other remote desktop options. (is it a network issue with RDP? etc…)

Thank you.

The root cause is complicated.

Microsoft’s Remote Desktop protocol “does the right thing” for security. This gets deep into Windows OS design details, involving the terminal console and remote consoles, but for our sake, it comes down to this: Remote Desktop does not provide access to displays attached to physical GPUs. Instead, it creates a software GPU and display device (along with software mouse, keyboard, audio) and connects the desktop to those.

CloudXR must be run using the NVIDIA driver. But Remote Desktop Sessions do not have access to this driver.

Another thing at play is SteamVR. SteamVR requires that a given VR title be running on the same GPU as SteamVR itself, which always launches on the Windows primary display. In Remote Desktop Sessions, the Windows primary display is the one attached to the software driver.

So you need to use a remoting solution that streams whatever is happening on a “physical display”. In cloud VMs with no physical display, you wind up using a virtual physical display that is set up by you or your cloud provider using some tools to “fake” a display on one of the GPU display ports (without a display actually being attached).

I see, thank you so much for the clarification!

I was actually able to get CloudXR to work with RDP. When the client connects and you see the greeny/blue screen, you can go into the advanced SteamVR settings and turn “Pause VR when computer is locked” to off. I think this is related to the comment above, in that the main windows display is still “locked”, but it did work, and the SteamVR void showed up immediately in the stream (no need to reconnect or anything).

For audio I found setting the RDP connection settings to “Play Audio on the Remote PC” avoided RDP forcing the Microsoft Remote Audio driver, and CloudXR was then able to add its audio devices and stream audio properly in both directions.

I had a whole walkthrough video prepared using this route, and then discovered that closing the RDP connection kept the video working fine but for some reason stopped the audio streaming from working. So I went back and did the whole thing again using DCV. DCV also needs the “Pause VR when computer is locked” setting set to off to avoid the greeny/blue screen when disconnecting the DCV session, but with DCV audio continues to work in that case.

You can see the full walkthrough I put together in this post.