ClassicOldSong / Widecar

Sidecar for Windows - with Sunshine and Moonlight
MIT License
107 stars 1 forks source link

No video from host - Doesn't work with laptop which is connected to external monitor and has 2 GPUs #2

Closed clodi95 closed 1 month ago

clodi95 commented 1 month ago

I have a laptop with a dedicated NVidia GPU (RTX 2060) and an integrated AMD GPU (don't know exact model, CPU is Ryzen 9 4000 mobile series), which is connected to an external monitor (2560x1080). The signal to the external monitor is handled by the Nvidia GPU, whereas the virtual display adapter (Parsec VDD) (2520x1080) uses the AMD GPU for rendering (as does the laptop display).

With said setup, I get a no video from host error when streaming. However, if I disconnect the laptop from the external monitor, then everything works fine, because - I assume - both signals to the laptop monitor and to the virtual display are handled by the AMD GPU.

ClassicOldSong commented 1 month ago

This is a konwn issue with ParsecVDA. It can't handle multiple graphics card working together. In this case, when you connect to the external monitor, the dedicated GPU and the built-in gpu are used simultaneously (usually external monitor is connected directly to the dGPU for performance), the VDA driver is confused.

Maybe you can try closing the lid of your laptop and see if it works.

There might be some undocumented methods to tell the driver to use which GPU, but I have to try.

ClassicOldSong commented 1 month ago

Ah, there it is:

https://support.parsec.app/hc/en-us/articles/4423615425293-VDD-Advanced-Configuration

You can follow the instruction of Select Parent GPU to specify the GPU you want to use

If that still doesn't work, try set Adapter Name in your Sunshine's Audio/Video config

clodi95 commented 1 month ago

Hey, many thanks for the quick reply. I tried the proposed solution (to set a parent GPU in the Windows Registry) and it actually worked!

But I had to do one additional edit to the Windows Registry. At the registry path "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\ParsecVDA\Parameters" there's a pre-existing entry "DisablePreferredRenderAdapterChange" that was set to 1 on my machine. It needs to be set 0. Then it will work.

Problem solved. Thanks again!