2 Gamers 1 GPU with Hyper V GPU-P (GPU Partitioning finally made possible with HyperV)

I’ll be running through a windows 11 setup on my own next weekend possibly. I’ll have to check if drivers layout for a 1060 have changed. I haven’t attempted any gpu-p projects in the past month.

I’ll try an older 7770 HD series amd card I got to maybe figure out how to set those up.

If you are looking for a driver date range. Maybe a March - September release driver.

Might want to try the full driver removal tool to get all straggler files.

Hi,

I followed the instructions and got the gpu shown in my vm, and the ingame fps counter indicated that the performance is almost the same as host os. But there are several problems that drive me crazy these days:

  1. Super fast mouse movement in FPS games. After some searching around I found the reason might be hyper-v console and rdp using absolute mouse movement, while games needing relative movement. Cant seem to find a solution so far, although parsec fix this perfectly, it uses injected inputs, which might be a problem for some online games.

  2. Frame drop when fps counter shows a stable number. When I control the character to move around, the actual frame rate drops to around 40 while the counter states over 100. Parsec has better performance, but problem persists.

It almost sounds more like network latency or latency introduced with the encoding and decoding process. What GPU model do you have and what is the settings for encode (encoding with CPU or GPU) and decode settings (on remote device).

are you testing within your own network or over internet?

I guess the other question is, Are you using Parsec through a browser vs the dedicated client. My experiance with parsec on a browser has been more delayed than when the client is locally installed.

I’m currently testing on the same machine (connecting to host os in guest os by different means), so network shouldn’t be a problem. And i don’t seem to find related settings for microsoft remote desktop, except some items in their messy group policy and registry.

The decoding settings are both hardware, don’t know what encoder it is but if I don’t configure gpu-p parsec won’t let me capture screen. My GPU driver model is WDDM 2.7 (perhaps 2.9 not supported by GTX 1060? ). I am using parsec client.

hello i am trying to use hyper v on my windows 11, but i dont have the folder nv_dispi.inf_amd64

how do i make it appear or anywhere to download it? i use nvidia geforce rtx 3060

Hi all. I’m starting to notice a theme. I wonder if there might of been a change to how Nvidia has been naming folders. They probably changed it to the pci ID of the card in device manager or something else.

I don’t personally own a 30 series cards, only 10 and 20 series. I am running through a new setup on a windows 11 machine to see if I can get an idea if this could of changed there as well.

I came across this post here for a dedicated script to setup a parsec vm with an nvidia card. I’d give this a try if you are having trouble finding drivers as this looks to copy all driver related files into the ISO image

Keep in mind this will only work on windows 11 due to powershell items only on windows 11.

If I come across any findings, I will make my observations known.

@Voras @Newbie1 and others trying to find drivers with AMD and Nvidia cards.

I believe I can help find where you can locate your missing folders or get you started on where to locate them possibly.

In device manager and right-clicking on a GPU, you get an option called “Driver Details” in the driver tab.

This will display all Driver files associated with the GPU. On the top of the list and descending, It will list paths to C:\Windows\System32 and then C:\Windows\SysWow64. on the bottom of the list is the Driverstore folder names.


(for the two NV_Dispi.inf_AMD64 folders listed. you can try to copy both or copy the one only referenced in the Driver files list. From what I have seen, it leaves old Driver versions in the File repository directory so it may or may not cause conflicts)

They don’t list the initial path but they could be:

C:\Windows\System32\DriverStore\FileRepository
or
C:\Windows\SysWOW64\DriverStore\FileRepository (From what I’ve seen so far, this location may not be where it will land.)

Here is another example for when I am locating my AMD card.

I do hope this helps locate your drivers a bit easier. After looking through this list. there are some things that would be beneficial possibly from the SysWOW64 folder that could possibly resolve some issues with games or apps not loading as a troubleshooting step.

Hello , I have followed this youtubers technique nd have managed to run it successfully , now I am not understanding the part how to use the other monitor separately with a separate kb and mouse , I am using windows 10 btw .also having pasrsec error -15000 .I am not being able to comprehend parsec . Here is the pic of the tutorial I followed

@cheif22 I just added what I hope to be Windows 10 20H1+ support to the script, please try it out.

2 Likes

@jamesstringerparsec Thanks for the update! When I get another day free this week I will give it a go. Had issues with a Windows 11 version but I believe it was USER error on my part.

I’ll give it a go again this week.

Thanks!

Update:

I was looking through the script and you use this line.

 Add-VMGpuPartitionAdapter -VMName $VMName -InstancePath $DevicePathName

Windows 10 20H1 or other versions besides Windows 11 do not have the

-InstancePath switch when looking at Powershell ISE. It does have -AdapterID but not certain that it performs the same function.

I can try this to see if it works but It may not.

Anyone cracked the Geforce Experience code completely yet? I can’t even get it installed even with the identified work around.

thanks for reply, but as said i dont have those 2 or even 1 of those files, which i dont understand since everyone seems to have em, so my question is how i get the files

Windows 11 Pro
Nvidia Geforce RTX 3060 Laptop GPU With latest update yet the files are not here, and not sure if it work if any could send me those 2 folders.

Yes I see the issue now, on Windows 10 the adapter is automatically assigned, and it doesn’t seem to be possible to query what adapter is assigned to the VM since Get-VMGPUPartitionAdapter and its corresponding WMI query does not return something like InstanceID that can be used to inform the script which driver should be copied over.

In the case where the user only has one GPU on Windows 10, I can make it work since it can be assumed that this GPU will be assigned by Windows 10 to the VM.

There may be some way of figuring out what GPU Windows 10 will assign by default (maybe in multi gpu system it picks the first high performance GPU in the system) but this is an annoying way of figuring this out and will take a lot of trial and error.

@cheif22 I figured out a solution with Windows 10, and updated the script to support it. With Windows 10 you must leave the GPUName field in the script params as “AUTO”. I figured out that Windows 10 just uses the first GPU available for partitioning, so “AUTO” just uses the first GPU returned from the WMI query.

In this case it will work correctly (tested with a multi GPU system on Win10 21H2).

Manual GPU selection doesn’t work in Windows 10, but works fine in Windows 11.

Did my first setup of all this with a Win 11 host and 2080 Ti. Thanks for everyone for this awesome thread.

A few things I noticed and I’m guessing they’re normal based on some of the comments here, but want to confirm.
1: No matter what, the VM always shows an old driver (from like 2016?) instead of the actual Nvidia driver?
2: Nvidia control panel and geforce experience don’t work in the VM?
3: GPU-Z and most of dxdiag shows nothing?

4: The drivers in use on my host were nv_dispsi.inf_amd64 and NOT nv_dispi.inf_amd64 (not the extra S), I am using the studio driver though. Nvidia control panel on the host reports the new driver I installed. Is that difference OK? (both folders exist on the host, but when I look in device manager, the one with the extra S in dispsi. is the one being used by the card, so that’s the one I copied to the VM). No Code 43 error and it seems to be accelerated properly.

Has anybody tried to use GPU-P with proxmox or unraid? I need linux at the base, but maybe GPU-P will work in Windows VM.

Tried the search, but did not find anything.

if your looking for partitioning cards in proxmox. Craft computing did this video for that. I believe jeff followed up on this later on with some Tesla GPUS as well.

Maybe this would work better than trying to partition a gpu for a vm inside of a vm which I can see having more issues.

I’d look at this first to see if this would fit your needs.

2 Likes

Hi,

Hope to confirm some things.

  1. the VM driver for the card will for some reason give a different year no matter what. I’ve gotten a 2005-2006 label on the year myself for a 2070 non-super

  2. Someone had gotten Geforce experiance to install but no it seems to be a broken mess still in the VM unless someone had figured out how to fix it.

  3. GPU-Z I cannot explain, its hyper V and I wonder if its trying to look at the hyperV viewer driver vs the gpu which could be possible.

  4. I guess I never caught on to the driver folder “nv_dispi.inf_amd64” being changed to “nv_dispsi.inf_amd64”. But yes looking up the driver file location in Device manager can help with locating the correct file location. The photo I put in the above comment, lists my 2070 driver without an S but I’m running the game ready drivers so possibly it is a studio driver thing.

I may or may of not mistyped any information on this and anyone can correct me if I’m wrong, this is just from my experience with HyperV and GPU-P

1 Like

I have tried absolutely everything to achieve my goal, but at this point I have to accept defeat, at least without further assistance. I blame MS and NV for making this such an arduous improbable task. Everything with them is like getting blood from stone.

My goal: 2 GPU’s 1 PC

The main GPU would be a (slightly weaker) GTX 1080 that I already have and otherwise works great. This one would run OBS capturing a VM and streaming to Twitch.
The secondary GPU, which I also already happen to have, would actually be the main GPU inside the VM, used to play games.

The problem, is that I cannot realistically upgrade right now, so when buggy games or bottlenecks take down my entire PC with BSOD’s, my stream goes with it. These kinds of issues kill any momentum my stream had and I lose viewers (that I mostly didn’t have anyway, which is why when I get even 1 and lose them to a crash, it makes me pretty upset).

The solution, I have come up with at least, is to operate all of the games in one VM on their own with nothing else running, whilst capturing the VM using OBS on the main desktop and sending the feed to Twitch.

The idea, is that one GPU in a very controlled environment is running games with zero interference. Whilst another GPU, which the game does not touch, is being used by OBS. This way, a crash will take down only the VM and I can just boot it up again.

Now, I’m unsure of whether OBS/Hyper-V/Windows will support this or if it will work at all, but as it is I cannot get past “code 43” error and get the graphics card running the VM.

What I’ve done:
Followed the guide and copied all driver files over, then customised the script and ran it. It took some work to get rid of all the errors but the script works perfectly now. Note, I searched high and low, trying every trick to specify which GPU to partition but, in the end, I can only come to the conclusion that (in the most Microsoft way possible) it just doesn’t work on Windows 10. I still get code 43 no matter what I do or don’t try and which GPU it picks.
And I am removing the GPU partition first and after each test in case you’re wondering.
Next, I went through the process of connecting both GPU’s to my main desktop, identifying them properly long-term (renamed in devmgmt) and disabling the main GPU, running the script so that it ran on the secondary GPU, re-enabled the main GPU and disabled the secondary GPU. Into VM again and still code 43.

I’m now at a loss as to what else I can do to achieve my goal, if it’s clear that my setup is not supporting the passthrough successfully and I’ve done everything imaginable, I can only blame Nvidia antics.

Is there anyone that can assist?

Has anyone got the AMD encoder working inside the VM?

I am able to use the encoder on my host machine but not the VM.

Hardware:
CPU: 2700x
Mem: 16 GB
GPU: 6700XT