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

Y’all actually playing some proper games with this?

Recently I tried Cyberpunk 2077 and Forza Horizons 4, and it either hangs or crashes, because it doesn’t appear to like the display and render device split. It would probably apply to other games, too. There’s only so much VHDXes I want to create with SteamLibraries.

2 Likes

Did anyone get anywhere in assigning specific GPUs ?

Found a post here: GPU Virtualization with Hyper-V – James' Personal Site that claims to have done it but the Get-VMHostPartitionableGpu doesn’t exist for me; It was written in April '21. Tried the latest Windows 10 (Version 21H1 (OS build 19043)) but still don’t see it – maybe it’s a WIndows Server 2022 thing?

Wonder if using DDA to pull them from the pool first might give a bit more control…

1 Like

Working with Windows Server 2019 and Windows 11 Dev

3 Likes

That’s great to hear mate!

Windows 11 keeping it alive!!

I know arma 3 works, halo MCC, halo wars 1. Think I might be missing some other one

Couldn’t get Parsec to work with Windows 11 guest on a Windows 10 host. If anyone else has this issue, let me know!

Edit: solution is to spoof the PCI ID of the GPU-P in the registry to that of the host GPU and install the Nvidia driver that way. This isn’t the best solution out there but it certainly works. (Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum)

2 Likes

Hey, I got this working on two VMs, I setup one VM then removed it to use a parent for two Differencing disks. Not alot of free space on my SSD.

I am able to get both VMs started and from the console the VMs are able to render using GPU.

As soon as I try to access them both with Parsec and the GPU encoder, the VMs crawl. I get encode times over a 100+ms and then the screen goes black. Also, I notice that I had to have the VM console open on my screen for Parsec to function.

Anyone else having this issue? Is it due to the differencing disk?

1 Like

As soon as I try to access them both with Parsec and the GPU encoder, the VMs crawl. I get encode times over a 100+ms and then the screen goes black. Also, I notice that I had to have the VM console open on my screen for Parsec to function.

The reason the VM display console needs to be open for Parsec to work is because the GPU-P is a render-only device and has no display head. To combat this, you can create a display head by opening the HyperV display console. This however has a fair bit of latency and performance is not great.

As for disk, I used dynamically expanding and the performance is reasonable. It uses only as much space as it needs.

1 Like

Hi, I tried two VM, and Host automatically assigned two different GPUs to the two VM. Get-VMHostPartitionableGpu doesn’t exist for me too.

Is it possible to use RTX gpu (game graphic card) in windows server or hyper-v server?

1 Like

Hey man,

In terms of RTX, I have not tried this. I think Jeff from craft computing might of gotten this to work?

I know he said he was going to do a step by step setup guide some point. Don’t know when? Try his discord if you are a patron?

If it doesn’t immediately work, might want to give a look in system 32 for any NV dlls that reference rtx on the file name.

Also, it will just auto assign a gpu, no order, just random sadly to my knowledge.

Just tried this with my 6900xt in a win10 VM and am getting code 43.

I copied the contents of the driverstore folder to c:\windows\system32, do i need to put something int he guest driver store folder as well? Anything else needed to do?

i.e. my VM looks like this

Now if only there was a way to do this on linux host AMD card and windows guest.
Using DRM leases for multiseat allows me to run 3 games on 1 GPU without the need to use VM.
Its great as Steam allows family sharing of the games and game library so its saves on disk space and game cost but not all games work in linux.
This is why running windows VM is still needed.

Hey,

With amd cards it’s a bit weird.

Way I did this, went into the driverstore on the host and found my card’s drivers by finding the hardware id and corresponded to the folder names.

On the guest VM, In the C:\Windows\System32\HostDriverStore\FileRepository\

I put those driver folders in there and rebooted and it worked for my AMD 7770 HD 2GB cards. I was only verifying they worked but they are not good for GPU partitioning.

Hope this helps.

1 Like

Hey! Thanks for the tutorial, but for some reason i can’t get my rx570 to work properly. I tried copying a bunch of amd folders from Driver Repository to the VM, copying dlls from system32 to VM. And it doesn’t work still :frowning: got code 43

1 Like

Were you able to fix this? I’m having the same issue on my RX 5700. It presents as Parsec Error -15000 “host encoder failed to initialize”

1 Like

Can someone test if it also works on Hyper-V Server 2019?

The commands to partition the GPU worked for me on an Epyc 7302p and Quadro P2000. However I did not attempt copying driver files into a guest yet.

Has anyone got GPU-P to work with a Linux VM?

I haven’t had the time lately to test this. I assume probably but I might be wrong. I guess my first suggestion with this is to see if you are able to install any GPU drivers like how it would be done if it was in a KVM machine maybe?