Easy-GPU-PV
Easy-GPU-PV copied to clipboard
Client/VM is stuck at 1024x768
I've followed the process (have a 3080 Ti), but when connecting in, the VM, in windows display settings, is locked to 1024x768. Even after using the update drivers ps1 file, and using the file to gather driver files into a zip, manually copying them over to C:\Windows, and rebooting, the issue remains. It is acting as if the client has no graphics drivers. Is there a workaround for this, or did I do something wrong?
I don't have a solution, but I've noticed that when you disable the MS Hyper V Adapter, it defaults to an MS Basic Adapter, which can't go any higher. (validate by right clicking Desktop>Display>Advanced Setting).
As of now, I cannot get Parsec to go above 1080p no matter what I do because of this. MS Basic is limited to 768p and the Hyper Visor Display is limited to 1080. I can SEE the nVidia adapter is Device Manager, but other than when I use RDP, I have never been able to get Parsec to go above 1080p (the dummy plug I have goes well above that and works with other Streaming Services)
I am not sure the exact cause, but I was able to use Custom Resolution Utility to add a custom resolution and then was able to set the new resolution in Display Settings.
The VM originally was not locked to 1024x768, but after a Windows Update and restart, that is when the issue started occurring.
I tried that out, and after doing some reading in the forums, it wont help. It comes back around to the VM only seeing the Hyper V Video and not the Parsec Video or the actual nVidia GPU, and it can't make changes to the Hyper V setup. I'm starting to toy with the idea of giving VMWare ESXi a try since nVidia opened up their drivers earlier this year. See if that can't get it going since it's a bit more mature regarding GPU sharing/partitioning and Passthrough.
Thank you for the idea though. It was something I didn't even know existed.
This issue is easily fixed by installing a virtual display like usbmmidd
The cause of the issue you are experiencing is that ~recent versions of Parsec free edition launch Parsec virtual display only if no monitors are attached while adding virtual displays at will is reserved for paid editions.~ (EDIT: see my comment down this thread) We have two problems here:
- Hyper-V always plugs in its virtual display which does not support hardware acceleration, i.e. Parsec virtual display is never activated because there always is a display. Current release of Hyper-V does that even if you disable Hyper-V display in the guest.
- When no displays which support Nvidia rendering are connected, GPU driver disables acceleration, and the resolution is capped at 1024x768
The solution is to install a virtual display that is always "plugged in", like the one I mentioned above. This is analogous to using a dummy HDMI plug. You should then set the guest to display only this new virtual display.
I've tried usbmmidd when I first started playing with GPU-P and had the same results, but admit, at this point, it may be worth revisiting with leasons learned.
I do use a dummy plug that is able to do up to 4k, but I've only tasked it with a max of 1440p within other programs, so I do know it is working as intended, but this also may be worth revisting with leasons learned and a different plug just to see if there's something Parsec isn't liking about it? With that said, when I use Parsec to connect directly to the host that only has the dummy plug, it works in 1440. But that is outside the VM and direct connect to the machine and GPU.
Another test I have in mind is I have another 1440 monitor sitting around. Thinking about digging it out and plugging it in with power, but leaving it off as I've read that some have tried that with better luck under differnt situations.
Thank you for the reply. I'll most likely be revisting usbmmidd tonight and remove the dummy plug. Appreciate your input and time!
edit So I tried the usbmmid again. Once installed it did show has having two monitors. I told Windows to display only on the montior (monitor 2) that was attached to the USB Mobile Monitor Virtual Display. I then made sure the Parsec Virtual was disabled/uninstall as well as disabling the Hyper V Video. Now when it boots, device manager shows HV Adapter as shut off, the USB functioning as well as the nvidia GPU. However, the monitor shows that it's attached to a wired display, but it's the MS Basic adapert. Back to it not seeing anything beyond the built in.
When redoing everything, things stay as they are until I reboot, then I lose everything. It's all still there in Device Manager, but I can no longer access it from the desktop
I deployed a test VM using nothing but the scripts for EZ GPU and it still fails to work. I run the usbmmidd again, and again, it shows upand I can change the primary monitor/only show on the correct one, but again, when I reboot, it completely vanishes
I found a band-aid/work around that is working. Don't like it as a perminant solution, so I'll keep researching, but will use this for now. Apologies, I don't knokw the proper way to link in git. I'll put a link to the thread and the actual message I used.
link https://github.com/jamesstringerparsec/Easy-GPU-PV/issues/59
"Ok I think I found a workaround, the trick is to activate a virtual display before the parsec driver. the VM is running windows 11 been access using windows 10. All the steps on the VM: Connect (parsec / hyper-v). Download and install usbmmidd_2 : this is a virtual display that we can control, take a look at the instructions, pretty simple. Activate using "deviceinstaller64 enableidd 1": Now you will have a virtual monitor. Create a task on task manager to run a bat file/command activating the virtual monitor: "deviceinstaller64 enableidd 1" and set it to run on windows start up and admin privileges without the need of the user to be logged in (after creating the task check for advanced settings or something like that). Disable the driver display of hyper-v (if its not already) on device manager. Reboot VM On display settings, disable all monitors that are not using the parsec driver (tip: take a look at refresh rate, parsec is the only one that goes above 60). Just to be sure, reboot VM again to check if the settings are being saved. Have fun.
PS: even the option to use client resolution is working."
Yes, usbmmidd needs to be enabled on each boot. I did it by adding a startup script in gpedit.msc
but other methods work too.
Well the actual issues is .
When I log into my vm through the same account that is logged into my vm persecs, the persec virtual display Adapter started working, and it shows me the correct resolution ie. 1080p or even allow me to change the resolution of my vm.
But as soon as I disconnect and try to log in from guest persec account. Persec virtual display adapter didn't work. And Microsoft basic display driver seems to be on i.e. 1024x768 resolution gets displayed.
So the actual problem is how persec virtual display Adapter acts on host and guests connect.
Usbmmidd display driver works only if u uninstall and re-install it again and again after each remote session, which is quite annoying.
I hope this makes the issue clear , And help in more trouble shooting.
Also a very thanks for providing this script, can't say it's perfect but still it do open many opportunities.
I hope this issue with persec virtual display adapter will get fixed soon.
Thanks again.
TL;DR
Download USBMMIDD v2 and create a task in Task Scheduler to solve the resolution problem.
startup.ps1
C:\usbmmidd_v2\deviceinstaller64 enableidd 1
In the Task Scheduler create a task that:
- Run whether user is logged or not
- Run with the highest privileges
- Run at startup
- Deactivate the conditions
- Has the following action configuration:
Action: Start a program
Program/script: powershell.exe
Add arguments: -NoExit -ExecutionPolicy Bypass C:\usbmmidd_v2\startup.ps1
P.S.: Edit the paths to match your system.
P.S².: Don't forget to deactivate all others monitors in the Windows Display Settings (show only on X).
@gdias1992 thanks for the clear instructions
I'll just add for anyone following them to also be sure to run usbmmidd.bat after downloading USBMMIDD to install the interfaces.
I too had the same issue after deploying a new Win 10 VM. The suggestions in this thread helped solve this issue, but - although I can see Nvidia 2060 in the Device Manager (working ok), and now I can change screen resolution, I can't see the GPU section in Task Manager, dxdiag says there is no d3d renderer, and UserBenchmark also fails with no d3d renderer. Any ideas what else I'm missing?
As long as GPU acceleration works without issues in your VM you can ignore the problems you mentioned. It is because of how Windows handles partitioned GPUs currently and should not affect performance. But yeah no GeForce Experience or other stuff that normally works with physical cards will work in the VM.
If anyone is still using my solution from one of the previous comments: I was not right about virtual displays no longer working on free editions of Parsec. What happened is that when they added the fallback feature, previous virtual display setting was auto removed from the config file. But it still works if you add it back manually to the config file as explained in #204
So no need to use usbmmidd after all :D
I've tried all the above, had some issues and started tinkering the Hyper-V myself, found enhanced session mode activ on user section according to the scresnhots below.
The Hyper-V driver came back to life right after I deactivated it, accepting all resolutions.
Hope this does help someone.
I'm confused what the solution is here. I get 1024x768 in parsec. Should we be editing a config, running a .ps, installing an external driver or something else?
Any help would be appreciated thanks :)
I've ended up using third-party custom resolution software along with a simple batch file running on Windows start to add the custom resolution + disable the Hyper-V Video driver to avoid BSOD.
Unfortunately I am not using the virtual PC right now since I have been having personal issues with RAM. I will try to grab this content for you.
I'm confused what the solution is here. I get 1024x768 in parsec. Should we be editing a config, running a .ps, installing an external driver or something else?
Any help would be appreciated thanks :)
Sorry for not having the time to reply sooner.
I'm currently using the usbhimdd_v2 solution discussed above. The display is activated on logon via a scheduled task. I do have resolution problem when connecting via parsec -one instance comes up at 1024x768. So I applied a second "fix". I downloaded a command-line utility called qres.exe that allows me to set the resolution via script - something like qres.exe /x:1920 /y:1080
. I do start it with a 5s delay after enabling the display, but it doesn't always work. So I keep it as a desktop shortcut handy (for various resolutions) that I activate manually. The downside is - if I disconnect and reconnect from parsec, it reverts to 1024x768, and I need to run the script manually.
Usbmmidd is not needed as I mentioned earlier. See this comment and the discussion in that PR.
Let us know if you followed the instructions and added the virtual display config line manually but it still didn't work.
Usbmmidd is not needed as I mentioned earlier. See this comment and the discussion in that PR.
Let us know if you followed the instructions and added the virtual display config line manually but it still didn't work.
Just tested it, and this tweak didn't work.
Usbmmidd is not needed as I mentioned earlier. See this comment and the discussion in that PR.
Let us know if you followed the instructions and added the virtual display config line manually but it still didn't work.
Just tested it, and this tweak didn't work.
Share your config file
Share your config file
I removed it in User\Install.ps1 according to that article
$configfile += "host_virtual_monitors = 1"
$configfile += "host_privacy_mode = 1"
Then added
$configfile += "host_virtual_monitor_fallback = 1"
After that recreate a new VM.
After the VM restarts, it returns to 1024x768. I have confirmed that the parameters in C:\ProgramData\Parsec\config.txt still exist.
I have also tried closing parsec and restarting them after closing parsec.exe from the task manager, but the situation remains the same. Currently using usbmmidd_2 to connect through parsec, but I don't know how to adjust the refresh rate, which is a pity.
Ok try the following:
- Disable usbmmidd
- Stop parsec and all its processes
- Add
host_virtual_monitors = 1
- start parsec and try to connect again
This has to be done after the vm is created. The config has to include host_virtual_monitors = 1
Do not modify the configs set by the script, they are required.
On Sat, 25 Feb 2023, 14:24 Klemens Starybrat, @.***> wrote:
This has to be done after the vm is created. The config has to include host_virtual_monitors = 1
— Reply to this email directly, view it on GitHub https://github.com/jamesstringerparsec/Easy-GPU-PV/issues/190#issuecomment-1445130458, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD6U6B2U3KG6KUWAG5Y4N4LWZIIYBANCNFSM556OYSAQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>
@Kodikuu Im referring to your answer to my question which has worked for me fine. It should also work for others in this thread.
Yes, in the config itself, after setup of a VM that no longer has that setting set.
The script already sets this, and host_privacy_mode. Both of which are needed. Do not modify the configs set by the script.
The thread you linked was a test of a new setting which failed.
The script was changed back and it finally worked, but there are many details that need to be done to make the virtual display driver work properly. Or maybe my computer is weird. 1. After the Windows update in the VM, I encountered the problem that I could not log in automatically and the password was wrong. I don’t have a better solution for this, so I just re-created a VM. 2. When the VM enters the desktop for the first time, the browser or a certain application screen (for example, discord) on the physical machine may freeze. If you interact with that window, the entire screen will freeze. My solution is to re-plug the display output of the physical machine . 3. The host_virtual_monitors = 1 and host_privacy_mode = 1 entered by the script may disappear from the config when connecting to parsec for the first time, and they need to be added together with host_virtual_monitor_fallback = 1 to call out the virtual monitor normally. I don't know if I should update the VM's system, but I'm used to doing it. However, the update and restart will conflict with the parsec virtual display driver and config, which will cause the shutdown to be stuck or the first point. This part still needs more testing to see what the correct order of execution is. 4. The parsec remote screen cannot operate the operating system application (such as task manager). My solution is to close the parsec application and restart the VM.
The above are the problems and solutions I generally encountered during the setting process. My English is not good, so I used machine translation for my reply. Please forgive me if there are any typos.
This happened when I connect the VM using another Parsec account, which means the privacy mode can't be enabled and virtual monitor won't be created. Also #59 is worth reading.
I tried the usbmmidd solution but it's not good enough. I tried to use a DP dummy plug but not worked. It would be nice if Parsec would fix this. Or is there anyway to keep the Parsec VDA from disappearing?
All; I had this issue as well, and I wasn't accepting the fact to have to install a 3rd party software to fix it. Running VirtualBox on a flavor of Debian, with a Windows 11 VM. VirtualBox downloaded/installed from Oracle's VirtualBox website. Windows 11 wasn't changing out of 1024 x 768 resolution, but all other installed VM's were fine.
After a lot of looking around, I came across a Reddit post reply, done by u/cantfind105keys, which solved everything for me! It reads as follows:
1. Go to the download page of your VirtualBox version, which is https://download.virtualbox.org/virtualbox/7.0.6/ , (NOTE: If you have the latest version of VirtualBox (v7.0.8), then it would be here.)
2. Manually download VBoxGuestAdditions_7.0.6.iso
from there,
3. Check it downloaded OK using the checksums in SHA256SUMS,
4. Manually insert the drive in the VM. If the VM is running, it’s in the Devices
> Optical Drives
> Choose a disk file
menu, then select the iso you just downloaded.
NOTE: Make sure to check your VirtualBox version number, and place the end of the URL with your version number (or go up the Parent Directory and find your version). Also, you may need to manually add an extra CD-Rom drive for your VM, if you don't already have an extra one that's empty, so you can mount the .iso.
Hope this helps someone on here, and/or down the line.