{"id":13440781,"url":"https://github.com/nomi-san/parsec-vdd","last_synced_at":"2026-02-05T03:07:25.234Z","repository":{"id":128436812,"uuid":"562007145","full_name":"nomi-san/parsec-vdd","owner":"nomi-san","description":"✨ Perfect virtual display for game streaming","archived":false,"fork":false,"pushed_at":"2025-08-01T08:06:17.000Z","size":1174,"stargazers_count":4124,"open_issues_count":27,"forks_count":196,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-08-01T09:54:10.267Z","etag":null,"topics":["headless-display","idd","iddcx","indirect-display","parsec","parsec-client","parsec-cloud","parsec-vdd","vdd","virtual-display"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nomi-san.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-11-05T02:44:12.000Z","updated_at":"2025-08-01T08:28:50.000Z","dependencies_parsed_at":"2023-12-30T10:26:06.989Z","dependency_job_id":"9180d56c-2259-4c5d-ae6b-628719957eb4","html_url":"https://github.com/nomi-san/parsec-vdd","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/nomi-san/parsec-vdd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomi-san%2Fparsec-vdd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomi-san%2Fparsec-vdd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomi-san%2Fparsec-vdd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomi-san%2Fparsec-vdd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nomi-san","download_url":"https://codeload.github.com/nomi-san/parsec-vdd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomi-san%2Fparsec-vdd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29108427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T02:48:39.389Z","status":"ssl_error","status_checked_at":"2026-02-05T02:48:27.400Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["headless-display","idd","iddcx","indirect-display","parsec","parsec-client","parsec-cloud","parsec-vdd","vdd","virtual-display"],"created_at":"2024-07-31T03:01:26.137Z","updated_at":"2026-02-05T03:07:25.218Z","avatar_url":"https://github.com/nomi-san.png","language":"C#","funding_links":[],"categories":["HarmonyOS","C# #","C#","💻 Virtual Displays"],"sub_categories":["Windows Manager","✴️ Third-Party Moonlight Clients"],"readme":"\u003c!-- tracking --\u003e\n\u003cimg src=\"https://i.imgur.com/dDUa6GH.png\" width=\"0\" height=\"0\" /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/user-attachments/assets/74e7db71-6166-49ae-b6c5-7543b15c60eb\"\u003e\n    \u003cimg alt=\"Parsec Virtual Display Driver\" src=\"https://github.com/user-attachments/assets/57202381-021c-428a-ae38-0fc4b2e0ee0c\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  ✨ Perfect \u003cstrong\u003evirtual display\u003c/strong\u003e for game streaming\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/nomi-san/parsec-vdd?style=for-the-badge\u0026logo=github\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/nomi-san/parsec-vdd/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/downloads/nomi-san/parsec-vdd/total?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## ℹ About\n\nThis project provides a **standalone solution for creating virtual displays** on\na Windows host using the **Parsec Virtual Display Driver** (VDD), independent of\nthe **Parsec app**.\n\nThe Parsec VDD enables virtual displays on Windows 10+ systems, a feature\navailable to Parsec Teams and Warp customers. With VDD, users can add up to\nthree virtual displays to a host machine they connect to, ideal for setups where\nphysical monitors may be unavailable or when additional displays are beneficial.\n\nBuilt by Parsec, the VDD leverages the IddCx API (Indirect Display Driver) to\ngenerate virtual displays with support for high resolutions and refresh rates,\nincluding up to 4K and 240 Hz. This capability makes it a versatile tool for\ngaming, streaming, or remote work, allowing users to simulate multiple screens\nfor an enhanced, flexible visual experience.\n\n## 📺 ParsecVDisplay App\n\nParsecVDisplay is a comprehensive virtual display manager for Parsec VDD, built\nwith C# and WPF. The app provides an intuitive interface to manage virtual\ndisplays, showing the number of active displays and allowing users to add or\nremove specific virtual displays. It also supports features like changing\ndisplay resolution, capturing screenshots, and more, making it a versatile tool\nfor flexible display management.\n\n👉 Check out [Releases](https://github.com/nomi-san/parsec-vdd/releases) to\ndownload it.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/nomi-san/parsec-vdd/assets/38210249/71b25bc6-eee1-4d80-94e0-e39eab7f8fb9\" /\u003e\n\u003c/p\u003e\n\n## 🚀 Using Core API\n\n### Design notes\n\nParsec VDD is designed to work with Parsec client-connection sessions. When the\nuser connects to the host, the app will start controlling the driver, it sends\nIO control codes and gets results. When adding a virtual display, you will get\nits index to be used for unplugging, the maximum number of displays could be\nadded up to 16 per adapter. You have to ping the driver periodically to keep\nadded displays alive, otherwise all of them will be unplugged after a second.\nThere's no direct way to manipulate added displays, you should call Win32\nDisplay API to change their display mode (see the ParsecVDisplay source).\n\n```mermaid\nflowchart LR\n  A(app)\n  B(vdd)\n\n  A \u003c---\u003e|ioctl| B\n  A ..-\u003e|ping| B\n\n  B --- X(display1)\n  B --- Y(display2)\n  B --- Z(display3)\n\n  winapi --\u003e|manipulate| X\n```\n\n### Using the code\n\nFor detailed instructions and usage examples, refer to the [VDD_LIBRARY_USAGE](./docs/VDD_LIBRARY_USAGE.md).\n\n- The core API is designed as single C/C++ header that can be added to any\n  project, 👉 [core/parsec-vdd.h](./core/parsec-vdd.h)\n- There is also a simple demo program, 👉 [core/vdd-demo.cc](./core/vdd-demo.cc)\n\n### Picking a driver\n\nYou have to install the driver to make them work.\n\n| Version           | Minimum OS      | IddCx | Notes                                                     |\n| :---------------- | :-------------- | :---: | :-------------------------------------------------------- |\n| [parsec-vdd-0.38] | Windows 10 1607 |  1.0  | Obsolete, may crash randomly.                             |\n| [parsec-vdd-0.41] | Windows 10 19H2 |  1.4  | Stable.                                                   |\n| [parsec-vdd-0.45] | Windows 10 21H2 |  1.5  | Better streaming color, but may not work on some Windows. |\n\n[parsec-vdd-0.38]: https://builds.parsec.app/vdd/parsec-vdd-0.38.0.0.exe\n[parsec-vdd-0.41]: https://builds.parsec.app/vdd/parsec-vdd-0.41.0.0.exe\n[parsec-vdd-0.45]: https://builds.parsec.app/vdd/parsec-vdd-0.45.0.0.exe\n\n\u003e All of them also work on Windows Server 2019 or higher.\n\nYou can unzip (using 7z) the driver setup above to obtain the driver files and\n`nefconw` CLI.\n\n```\nvdd-0.45/\n  |__ nefconw.exe\n  |__ driver/\n    |__ mm.cat\n    |__ mm.dll\n    |__ mm.inf\n```\n\nCommand line method to install the driver using `nefconw` (admin required):\n\n```\nstart /wait .\\nefconw.exe --remove-device-node --hardware-id Root\\Parsec\\VDA --class-guid \"4D36E968-E325-11CE-BFC1-08002BE10318\"\nstart /wait .\\nefconw.exe --create-device-node --class-name Display --class-guid \"4D36E968-E325-11CE-BFC1-08002BE10318\" --hardware-id Root\\Parsec\\VDA\nstart /wait .\\nefconw.exe --install-driver --inf-path \".\\driver\\mm.inf\"\n```\n\nIn addition, you can run the driver setup in silent mode to install it quickly.\n\n```\n.\\parsec-vdd-0.45.0.0.exe /S\n```\n\n## 😥 Known Limitations\n\n\u003e This list shows the known limitations of Parsec VDD.\n\n### 1. HDR support\n\nParsec VDD does not support HDR on its displays (see the EDID below).\nTheoretically, you can unlock support by editing the EDID, then adding HDR\nmetadata and setting 10-bit+ color depth. Unfortunately, you cannot flash its\nfirmware like a physical device, or modify the registry value.\n\nAll IDDs have their own fixed EDID block inside the driver binary to initialize\nthe monitor specs. So the solution is to modify this block in the driver DLL\n(mm.dll), then reinstall it with `nefconw` CLI (see above).\n\n### 2. Custom resolutions\n\nBefore connecting, the virtual display looks in the `HKLM\\SOFTWARE\\Parsec\\vdd`\nregistry for additional preset resolutions. Currently this supports a maximum of\n5 values.\n\n```yaml\nHKLM\\SOFTWARE\\Parsec\\vdd:\n  - key: [0 -\u003e 5]\n    value: { width, height, hz }\n```\n\nTo unlock this limit, you need to patch the driver DLL the same way as above,\nbut **5 is enough** for personal use.\n\n## 😑 Known Bugs\n\n\u003e This is a list of known issues when working with standalone Parsec VDD.\n\n### 1. Incompatible with Parsec Privacy Mode\n\n![Alt text](https://i.imgur.com/C74IRgC.png)\n\nIf you have enabled \"Privacy Mode\" in Parsec Host settings, please disable it\nand clear the connected display configurations in the following Registry path.\n\n```\nHKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\GraphicsDrivers\\Connectivity\n```\n\nThis option causes your main display to turn off when virtual displays are\nadded, making it difficult to turn the display on and disrupting the remote\ndesktop session.\n\n### 2. // todo\n\n## 🤔 Comparison with other IDDs\n\nThe table below shows a comparison with other popular Indirect Display Driver\nprojects.\n\n| Project                        | Iddcx version | Signed | Gaming | HDR |                               H-Cursor                               | Tweakable | Controller |\n| :----------------------------- | :-----------: | :----: | :----: | :-: | :------------------------------------------------------------------: | :-------: | :--------: |\n| [usbmmidd_v2]                  |               |   ✅   |   ❌   | ❌  |                                  ❌                                  |           |            |\n| [IddSampleDriver]              |      1.2      |   ❌   |   ❌   | ❌  |                                  ❌                                  |           |            |\n| [RustDeskIddDriver]            |      1.2      |   ❌   |   ❌   | ❌  |                                  ❌                                  |           |            |\n| [Virtual-Display-Driver (HDR)] |     1.10      |   ❌   |        | ✅  |                                  ❌                                  |           |            |\n| [virtual-display-rs]           |      1.5      |   ❌   |        | ❌  | [#81](https://github.com/MolotovCherry/virtual-display-rs/issues/81) |    ✅     |     ✅     |\n| parsec-vdd                     |      1.5      |   ✅   |   ✅   | ❌  |                                  ✅                                  |    🆗     |     ✅     |\n\n✅ - full support, 🆗 - limited support\n\n[usbmmidd_v2]: https://www.amyuni.com/forum/viewtopic.php?t=3030\n[IddSampleDriver]: https://github.com/roshkins/IddSampleDriver\n[RustDeskIddDriver]: https://github.com/fufesou/RustDeskIddDriver\n[virtual-display-rs]: https://github.com/MolotovCherry/virtual-display-rs\n[Virtual-Display-Driver (HDR)]: https://github.com/itsmikethetech/Virtual-Display-Driver\n\n**Signed** means that the driver files have a valid digital signature.\n**H-Cursor** means hardware cursor support, without it, you will get a double\ncursor on some remote desktop apps. **Tweakable** is the ability to customize\ndisplay modes. Visit\n[MSDN IddCx versions](https://learn.microsoft.com/en-us/windows-hardware/drivers/display/iddcx-versions)\nto check the minimum supported Windows version.\n\n## 📘 Parsec VDD Specs\n\nCommon preset display modes:\n\n| Resolution  | Common Name | Aspect Ratio | Refresh Rates (Hz) |\n| ----------- | ----------- | ------------ | ------------------ |\n| 3840 x 2160 | 4K UHD      | 16:9         | 24/30/60/144/240   |\n| 3440 x 1440 | UltraWide   | 21.5:9       | 24/30/60/144/240   |\n| 2560 x 1440 | 2K          | 16:9         | 24/30/60/144/240   |\n| 2560 x 1080 | UltraWide   | 21:9         | 24/30/60/144/240   |\n| 1920 x 1080 | FHD         | 16:9         | 24/30/60/144/240   |\n| 1600 x 900  | HD+         | 16:9         | 60/144/240         |\n| 1280 x 720  | HD          | 16:9         | 60/144/240         |\n\nCheck out [docs/PARSEC_VDD_SPECS](./docs/PARSEC_VDD_SPECS.md) to see full of\npreset display modes the driver specs.\n\n## 🤝 Sponsors\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/58e9a6f4-6630-437d-a758-b284c0ed41e7\" /\u003e\u003c/td\u003e\n    \u003ctd\u003eFree code signing on Windows provided by \u003ca href=\"https://signpath.io\"\u003eSignPath.io\u003c/a\u003e, certificate by \u003ca href=\"https://signpath.org\"\u003eSignPath Foundation\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## 🍻 Credits\n\n- Thanks to Parsec for the driver\n- The app's background was from old parsecgaming.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomi-san%2Fparsec-vdd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnomi-san%2Fparsec-vdd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomi-san%2Fparsec-vdd/lists"}