ClassicOldSong / Widecar

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

ParsecVDD cannot be run without monitors at cold start #3

Closed lancoyan closed 1 month ago

lancoyan commented 1 month ago

When comes back from shutdown , any autostart of parsecvdd will fail. Then widecar cannot add new virtual dispay. I found a cli version of parsec vdd. Could widecar use cli way to add virtual display without any physical monitor at cold start as the parsec vdd gui cannot be running.

lancoyan commented 1 month ago

Now i use a adapter to cheat as monitor when cold start, all things with widecar works excellent. But if could get off that adapter, the workflow will be more smoother ~~ 😍

lancoyan commented 1 month ago

https://github.com/nomi-san/parsec-vdd/issues/13

It seems they are deving official cli supports

lancoyan commented 1 month ago

Third party cli support I mentioned: https://github.com/HaliComing/parsec-vdd-cli

still works in 0.45

ClassicOldSong commented 1 month ago

Here's a project implements a auto connected display but there it could introduce user logic conflicts: it's always creating a virtual display on its own, which can't be managed by Widecar but you might want to stream the virtual display it created with resolution and frame rate matching, which isn't very doable at the moment.

https://github.com/timminator/ParsecVDA-Always-Connected

Another problem is from the graphics card driver side: on some devices, without a physically connected display, the driver won't release its power limit. So a dummy plug is by far the best solution for a headless setup.

You can configure the dummy plug to "disconnected" in Windows settings after you started streaming with Widecar and Windows will remember the state so you won't need to configure it again the second time you start streaming.

ClassicOldSong commented 1 month ago

If none of the issues I mentioned are your concern, the only thing you need is a program to ping the driver constantly. You can try compile the demo https://github.com/nomi-san/parsec-vdd/blob/main/core/vdd-demo.cc and run it at startup.

lancoyan commented 1 month ago

Thank you very much for share ParsecVDA-Always-Connected. It really solves my biggest problem. Now with the default vitural display always connected, the parsecVDD app finally could autostart at cold start. It seems that default display make the graphic card work and help parsecVDD app.

By the way, your readme helps a lot. Especially the usage of MultiMonitorTool. I wrote a rule "C:\MultiMonitorTool.exe /disable \.\DISPLAY10", since the always connected vdd is always display10 on my pc. The rule has been made as a shortcuts on my startmenu and sunshine desktop app detached command as you recommend in readme. But sometimes it will disable the wrong display which made by widecar. I don't figure out wether it's delay time not enough. Of course the windows could also remember the vdd disable state, so I finnaly delete the rule from sunshine detached rule.

Although ParsecVDA-Always-Connected can't be managed by Widecar, as you recommended, MultiMonitorTool should be always work with widecar as a whole.

lancoyan commented 1 month ago

After more test, pvdd always-connected service has confict with widecar when remove the display. As soon as widecar remove the display, the service of always-connected will made double displays.

So base on the same methods, I installed idds(hdr version https://github.com/itsmikethetech/Virtual-Display-Driver ) driver to light up cold start. And make a shortcuts by MultiMonitorTool to always disable it when any widecar plug in.

shortcuts: C:\MultiMonitorTool.exe /disable MONITOR\LNX0000{4d36e96e-e325-11ce-bfc1-08002be10318}\0022

Still manage all the stream by widecar. (Cause I have so many random devices to connect from ipad iphone android to vision pro and quest etc... )

This is not clean but works. Hope one day widecar with parsecvdd could handle this no physcal monitor cold start situ.

ClassicOldSong commented 1 month ago

Widecar is not intended to work on headless systems. It's more of a hack than a dedicated solution. The headless situation might be handled in the future with my fork of Sunshine

ClassicOldSong commented 3 weeks ago

Hey, I think this issue is now solved perfectly

Try this: https://github.com/ClassicOldSong/Apollo/releases

Enable "Headless Mode" in Audio/Video configuration and you're good to go!