GithubHelp home page GithubHelp logo

nomi-san / parsec-vdd Goto Github PK

View Code? Open in Web Editor NEW
1.7K 1.7K 87.0 379 KB

✨ Perfect 4K@240Hz Virtual Display

License: MIT License

C++ 10.96% C# 87.30% Inno Setup 1.74%
headless-display idd iddcx indirect-display parsec parsec-client parsec-cloud parsec-vdd vdd virtual-display

parsec-vdd's Introduction

Halo 👏

  • 🤣 Full-stack system to web
  • 🥳 Reverse engineering
  • 🐟 Fishing


Visitor count

parsec-vdd's People

Contributors

darktorres avatar nomi-san avatar solitudechn avatar timminator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

parsec-vdd's Issues

Todo: Parsec VDD v0.45 support

Parsec has announced VDD v0.45 in early of March.
https://builds.parsec.app/vdd/parsec-vdd-0.45.0.0.exe

Parsec Virtual Display Driver 0.45 allows you to select which physical GPU you wish the adapter to spawn on. This change is aimed at virtual machines and the selection can be changed using the Windows Registry.

Parsec Virtual Display Driver 0.45 greatly improves Privacy Mode and Virtual Display Driver reliability when used in combination with 150-93.

Seems the Privacy Mode bug (mentioned in README) has been fixed. And the driver setup (installer) is now using nefconw (by nefarius) instead of MS devcon. That will fix a problem that devcon cannot fully uninstall/override the driver files (mm.dll).

nefconw --remove-device-node --hardware-id Root\Parsec\VDA --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
nefconw --create-device-node --class-name Display --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318" --hardware-id Root\Parsec\VDA
nefconw --install-driver --inf-path ".\driver\mm.inf"

Sorry for my late, the ParsecVDisplay app will be released soon in the end of this month and should support VDD v0.45.

[Feature requests] Please add a feature to disconnect physical display connections via CLI.

While using a physical display, I hope to be able to disconnect or remove a virtual display using the CLI, which I've noticed is included in the upcoming release. However, when connected to a virtual display, the primary screen often remains on the physical display. In such cases, unless I manually switch the main display to the virtual one using the physical controls, I might not find a better solution. Some DP and HDMI monitors, to my knowledge, stop sending signals to the graphics card after being turned off for a while, but I haven’t found a way to control this timing.

Could you please add a feature to turn off the physical display using the CLI in your program? Thank you.

vdd sans parsec wrap ?

Bonjour, est ce que ce repo explique comment utiliser un VDD avec parsec sans souscrire à leurs offre wrap ?

HDR Support

Parsec supports HDR 10-bit streaming for now, but the VDD does not.
To unlock that, the driver should be modified to unlock HDR inside its EDID (that will break the signature).

You can use EDID writer to modify directly the plugged vdisplay but I'm not sure that works.
In case of modifying the driver file (mm.dll), check out the README to find EDID in hex editor.

graph LR
A["mm.dll"] .-> B["EDID"] .-> C["HDR support"] -->|apply| A
Loading

You need to use atleast 10-bit streaming and an HDR monitor to achive HDR in your view.
For example remote desktop with Moonlight or Parsec.

graph LR
A["VDD with HDR"] --> B["10-bit streaming"] --> C["HDR monitor"]
Loading

Open error after modify regedit with PreferredRenderAdapterVendorId=10DE

below is event log copy from win11

日志名称: Application
来源: Application Error
日期: 2024.7.15 11:42:25
事件 ID: 1000
任务类别: 应用程序崩溃事件
级别: 错误
关键字:
用户: 养乐多\臭狗子
计算机: 养乐多
描述:
错误应用程序名称: ParsecVDisplay.exe,版本: 0.45.0.0,时间戳: 0xc87b395c
错误模块名称: KERNELBASE.dll,版本: 10.0.22621.3880,时间戳: 0xdb9989e8
异常代码: 0xe0434352
错误偏移量: 0x000000000005fabc
错误进程 ID: 0x0x42A8
错误应用程序启动时间: 0x0x1DAD669023D23B8
错误应用程序路径: D:\software\ParsecVDisplay\ParsecVDisplay.exe
错误模块路径: C:\WINDOWS\System32\KERNELBASE.dll
报告 ID: 7a03663b-b4e5-4a90-a08e-fc3eb70c620c
错误程序包全名:
错误程序包相对应用程序 ID:
事件 Xml:



1000
0
2
100
0
0x8000000000000000

15092


Application
养乐多



ParsecVDisplay.exe
0.45.0.0
c87b395c
KERNELBASE.dll
10.0.22621.3880
db9989e8
e0434352
000000000005fabc
0x42a8
0x1dad669023d23b8
D:\software\ParsecVDisplay\ParsecVDisplay.exe
C:\WINDOWS\System32\KERNELBASE.dll
7a03663b-b4e5-4a90-a08e-fc3eb70c620c





A step-by-step guide for who don't know code

I only had some experience in matlab to support scientific work, the current read.me, issues and demo.cc excced the my capability,

Is it possible for you to make a step-by-step guide that anyone can follow? e.g. just typing-in code in console?

I would be really appreciated if you can do that. :)

Is there an option for users to customize specific resolutions and refresh rates?

Although a wide variety of resolutions and refresh rates are currently supported, is there an option for users to customize specific resolutions and refresh rates? I'm leveraging this solution to use my tablet as a secondary screen, but my tablet has an unconventional resolution ratio. I'd really appreciate the capability to customize both the resolution and refresh rate. Moreover, the official manual for the driver mentions customization through the registry, but I'm unsure if this project follows the same guideline. After installing the driver, I couldn't find the registry path mentioned in the official documentation on my computer(https://support.parsec.app/hc/en-us/articles/4423615425293-VDD-Advanced-Configuration)

Subject: [Feature requests] Fixing the name of the generated virtual screen

I would like to request a feature to fix the name of the generated virtual screen in the program I am using to extend my screen to a tablet. Currently, when setting up the display in Sunshine, I can specify the name of the display, which is convenient for quick setup.

However, the issue I am facing is that the new display is assigned a random name in the format .\DISPLAY{id}, where the "id" part is randomly generated during the screen generation process.

I kindly request an improvement in the program to provide a fixed name for the generated virtual screen, rather than the randomly assigned name. This would greatly enhance the usability and convenience of the program.
Thank you for considering my feature request. I look forward to your positive response.

How to make a screen work on specific GPU?

Hi, thank you for you work. I have a issue about multi GPUs. I have four GPUs and I add four screen. I run some andriod simulators on the screen. I found total four screen load on one single GPU. Is there a way to make a screen work on specific GPU? I want the four screen load average on each GPU.
Thank you. Wish you a good day.

Sunshine command support

Hi,

Thank you for your development. This has been really helpful/useful to me and I appreciate it a lot :) I just wanted to ask, is it possible to enable/disable or create/remove displays via command line? It would be cool if this was a thing if its not as Sunshine streamer allows for sending command when connecting/disconnecting a client. It would be perfect for creating/removing a display - or the better way to handle it would be enabling/disabling existing displays so the display ID doesnt change. Thank you!

virtual display missing when pc start

hi

Thank you for the development,
When computer restarts, only the software is turned on, and the virtual display does not remember the last time it was added.
Also, is it possible to add a virtual display to boot to the sunshine command line?

thanks in advance for the help!

can i just set the virtual screen as the main screen only?

How about adding only the virtual screen display in windows settings?The settings only function as a copy of the physical screen and extend the physical screen,can i just set the virtual screen as the main screen only?Similar to the privacy mode?

Thank you

May god bless you for this beautiful software. My greatest respect.

Cannot start software after restarting computer

After I installed it, I ran it directly with no problems. However, after restarting the computer, the software did not start with the restart, and it could not be started by double-clicking the software icon.

Virtual display adapter can be seen in device manager

A temporary solution is to reinstall the software after a reboot. But when operating remotely, I had to start RDP to complete the reinstall before continuing to stream remotely using the virtual display

虚拟显示器不显示

虚拟屏幕不显示

在阳光用命令行退出串流切换显示器后,虚拟显示屏就不显示分辨率了,也不能正常使用。已经重新卸载和安装,问题依旧。

Does the virtual display not support connecting to a laptop's discrete graphics card with direct-connect mode turned on, but only supports connecting to the core graphics card of the CPU?

When I use sunshine on my laptop, because sunshine states "If a GPU is specified above, the monitor must be connected to that GPU." This causes my sunshine to run normally when using the laptop's cpu core graphics card. When using the independent graphics direct connection mode, it seems that the virtual monitor is not connected to the independent graphics card, resulting in an error when using sunshine for streaming.

Can you give example build setup?

I like your idea but couldn't figure out how to implement it as you described, so a simple build setup from your description would help alot

Windows 10 Display Configurations Bug

On Windows 10, all connected display configurations will be saved in a specific registry. Each configuration is a combination of current connected displays and the key should be joined names of them. That will produce an issue that when you disconnect a middle display, then all others will be reset their configuration to default. I have not tested on Windows 11, but heard the display configurations system is smarter than Windows 10.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity

For example, you have plugged 3 displays, the registry keys look like:

DISP001                   // conf for display 1
DISP001_DISP002           // conf for display 1+2
DISP001_DISP002_DISP003   // conf for display 1+2+3
graph LR
Display1 .-> Display2 .-> Display3
Loading

Then you unplug the display 2, the registry keys look like:

DISP001                   // conf for display 1
DISP001_DISP002           // conf for display 1+2
DISP001_DISP002_DISP003   // conf for display 1+2+3
DISP001_DISP003           // conf for display 1+3 [new]
graph LR
Display1 .-> Display3 ~~~ Display2
Loading

The last registry key is added for display 1 and display 3, it has no configuration before, so these connected displays will be reset to default mode (resolution & refresh rate). To avoid this issue, please unplug each display from right to left (remove the latest first).

graph LR
Display1 ---x|2| Display2 ---x|1| Display3
Loading

Intermittent Virtual Display Disconnections with Parsec-vdd on Windows 10 22H2

I am encountering a recurring issue on my Windows 10 system where virtual displays created by Parsec-vdd are unexpectedly removed after a period of use.

This problem occurs when I use Sunshine as a streaming source for an older tablet running Moonlight.

Although I am not certain that Sunshine is directly related to this issue, I primarily use Parsec-vdd in conjunction with Sunshine, which could suggest a possible connection.

When I used eventvwr.msc and checked the Windows Logs / System for clues, the only anomalies around the times of the display disconnections were some TLS error logs, which seem unrelated.

Could you assist me in identifying the potential causes of these disconnections?

Are there specific logs or diagnostic tools within Windows that I could utilize to gather more information and troubleshoot this issue more effectively? Additionally, if there are any steps I can take to specifically isolate and rule out the influence of Sunshine on this problem, that would be immensely helpful.

System Specifications:

OS: Windows 10 version 22H2, Build 19045.3803
Parsec-vdd version: v0.45.0
Hardware: Intel i5-10500 + AMD RX6400, with two physical Dell P2319H monitors connected to the RX6400


I would also like to commend you on the excellent functionality of Parsec-vdd—it has proven extremely useful and efficient in most scenarios.

Bug report:: Virtual Display Driver May Cause Severe Canvas Stuttering and Crashes in Photoshop, Potentially Affecting more Apps.

Issue Description

After installing and enabling the virtual display driver from this project, I encountered first several crashed, then severe stuttering when dragging the canvas in Photoshop. And the problems disappeared after I disabled it. Suspiciously, this may potentially affect other applications.

Steps to Reproduce

  1. Install and enable the virtual display driver.
  2. Open Photoshop and attempt to drag the canvas with mouse while pressing the space.
  3. The canvas stutters significantly.
  4. Continue using Photoshop; it crashes intermittently.

System Information

  • Operating System: Windows 11 23H2
  • Photoshop Version: Photoshop CC 2024
  • Graphics Cards:
    • Intel Iris Xe Graphics
    • NVIDIA RTX 2000 Ada Laptop

Attempts to Resolve

  • Updated and reinstalled Photoshop and graphics card drivers to the latest versions, but in vain.
  • Uninstalled my original display driver and disabled the virtual display driver in Device Manager , and the issue disappeared.

Additional Notes

  • It came so frustrating when the issues still occurred even if I had deleted all the virtual display I created in your application because I originally thought it would solve the problems.
  • The virtual display driver may not only causes issues in Photoshop but also has the potential to affect other applications, but I didn't try it.

Add display and the new one disappear soon

I can't create new display

When i click the ADD DISPLAY button, the new one show it's name \\.\DISPLAY1, And it disappear soon

It's suppose to be incorrect which conflicted with my main display (laptop)

But i click ADD DISPLAY in a short period of time. I can create two display, but they will not disappear

[False positive] Microsoft Defender Antivirus Flagging ParsecVDisplay as Trojan:Script/Wacatac.B!ml

I have observed that Microsoft Defender Antivirus is flagging ParsecVDisplay v0.45-a as Trojan:Script/Wacatac.B!ml and has isolated related files. Below are the detailed information:

Severity: Severe

Detected: Trojan:Script/Wacatac.B!ml
Status: Isolated
Isolated file location: Restricted area, won't harm the device

Date: March 30, 2024, 10:00 AM
Details: According to the report, the program might contain malicious code possibly intended for executing commands from attackers.

Affected Items:
File: c:\program files\parsecvdisplay\parsecvdisplay.exe
File: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ParsecVDisplay.lnk
File: C:\Users\Public\Desktop\ParsecVDisplay.lnk

Can I specify which GPU vdd will use.

I noticed that each time I restart windows, the vdd will follow the same GPU as the monitor.

So can we specify which GPU to use, since the iGPU is not quick enough to encode 4k@120hz. (When stream with sunshine.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.