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.