diff --git a/README.md b/README.md index b79c7704..c253fb68 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,47 @@ Apollo is a self-hosted desktop stream host for [Artemis(Moonlight Noir)](https: Refer to LizardByte's documentation hosted on [Read the Docs](https://sushinestream.readthedocs.io/) for now. +## About Virtual Display + +> [!WARNING] +> ***It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.*** + +> [!NOTE] +> **TL;DR** Just treat your Artemis/Moonlight client like a dedicated PnP monitor with Apollo. + +Apollo uses SudoVDA for virtual display. It featurs auto resolution and framerate matching for your Artemis/Moonlight clients. The virtual display is created upon the stream starts and removed once the app quits. **If you couldn't notice a new virtual display being added or removed when the stream starts/quits, then there might be a misconfiguration of the driver or you're still have other presisting virtual display connected.** + +The virtual display works just like any physically attached monitors with SudoVDA, Windows will remember the monitor position config natively, there's completely no need for a super complicated solution to "fix" resolutions for your monitors. Unlike all other solutions that reuses one identity or generate a random one each time for any virtual display sessions, Apollo assigns a fixed identity for each Artemis client, or use a dedicated identity each app if using other Moonlight clients. + +## Configuration for dual GPU laptops + +Apollo supports dual GPUs seamlessly. + +If you want to use your dGPU, just set the `Adapter Name` to your dGPU and enable `Headless mode` in `Audio/Video` tab, save and restart your computer. No dummy plug is needed any more, the image will be rendered and encoded directly from your dGPU. + +## Troubleshooting + +- **No virtual display added** + - Ensure the SudoVDA driver is installed +- **Shows the same screen as main screen** + - If you're using an external display for the first time, Windows might configure it as "Mirror mode" by default. Press Meta + P (or known as Win + P) and select "Extended", then **exit the app** (not only the stream) and start the app again. You only need to do this once. +- **Primary display changed to the virtual display after connection. I don't want that.** + - Go to Apps and add one entry without any commands. Tick `Always use Virtual Display`, then untick `Set Virtual Display as Default`. +- **Resolution can't match client side anymore** + - ***NEVER*** set screen rotation on virtual displays! Widecar can handle vertical display normally, there's no need to manually set screen rotatition if you're using [Artemis](https://github.com/ClassicOldSong/moonlight-android) with Widecar. + - If you happen messed up with your monitor config: + 1. Disconnect ALL Artemis/Moonlight sessions + 2. Quit Apollo + 3. Meta(Win) + R, then type `regedit`, hit enter + 4. Delete ALL entries under + - `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration` + - `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity` + - `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\ScaleFactors` + + This will clear your monitor configuration cache. + + Then you're good to go! + ## System Requirements > **Warning**: This table is a work in progress. Do not purchase hardware based on this. @@ -58,6 +99,8 @@ SudoVDA: Virtual Display Adapter Driver used in Apollo [Artemis](https://github.com/ClassicOldSong/moonlight-android): Integrated Virtual Display options control from client side +**NOTE**: Artemis currently supports Android only. Other platforms will come later. + ## Support Currently support is only provided via GitHub Issues.