jamesstringerparsec / Easy-GPU-PV

A Project dedicated to making GPU Partitioning on Windows easier!
4.21k stars 422 forks source link

Reporting success for Win10 Education 21H2 as host and Win 11 Pro 21H2 as Guest, but there are issues #44

Open nikita-tomilov opened 2 years ago

nikita-tomilov commented 2 years ago

Hi!

After adjusting the script as said here https://github.com/jamesstringerparsec/Easy-GPU-P/issues/35 I was able to create and boot Win 11 Pro 21H2 as Guest under Win10 Education 21H2 as host.

Host has Ryzen 7 3800X (8C16T) / 32GB / RTX3060, guest has 4 cores / 8 GB / 50% of GPU.

However, there are still relatively major issues with the guest VM: 1) Games that do require OpenGL seem to be not working, e.g., Minecraft. However, games that use DirectX seem to work, as I was able to run Portal 2 at ~200fps at passed in VM 50% of my RTX 3060. 2) After power-cycling the VM, the resolution defaults to 1024x768 and I am unable to change it neither in Parsec settings, nor in Windows control panel. The only thing that helps is to log in to the VM from the Hyper-V host via Enhanced session mode and setting the resolution to 1080p there, and then after reconnecting Parsec can stream at 1080p60fps. After logging out from the VM on the hypervisor, the resolution drops back to 1024x768 and Parsec starts streaming this resolution. 3) On VM there is no GPU in Task Manager, thus, I am unable to see if the GPU is actually utilized. However, GPU is present in Device Manager.

Also, another off-topic issue - on my NAS running Pentium Silver J5005 / UHD Graphics 605 hardware decoding is extremely slow, and software H264 decoding kinda works, but as long as there is enough keyboard input it becomes slow again and playing game becomes painful, though for basic tasks e.g. YouTube playback the decoder is good enough. On both of my laptops with Iris Plus Graphics and HD Graphics 4600 as dGPUs the hardware decoding worked flawlessly. All three client machines were running Ubuntu 20.04.

nikita-tomilov commented 2 years ago

This is the link for Enhanced session mode how-to https://debug.to/1035/hyperv-windows-10-full-screen-mode

nikita-tomilov commented 2 years ago

The proposed solution for OpenGL from the Readme (https://www.microsoft.com/en-us/p/opencl-and-opengl-compatibility-pack/9nqpsl29bfff) did work, and I was able to run Minecraft on the VM as well. However, I do not have any other OpenGL games to test out.

Izooc commented 2 years ago

My Minecraft still pops up with the OpenGL error even though ive install the proposed solution. Did you do anything special or did you run java or bedrock?

jovaniedelacruz commented 2 years ago
  1. After power-cycling the VM, the resolution defaults to 1024x768 and I am unable to change it neither in Parsec settings, nor in Windows control panel. The only thing that helps is to log in to the VM from the Hyper-V host via Enhanced session mode and setting the resolution to 1080p there, and then after reconnecting Parsec can stream at 1080p60fps. After logging out from the VM on the hypervisor, the resolution drops back to 1024x768 and Parsec starts streaming this resolution.
  2. On VM there is no GPU in Task Manager, thus, I am unable to see if the GPU is actually utilized. However, GPU is present in Device Manager.

I am experiencing similar issues. Can't confirm the GPU partitioning works. To be fair I also don't know what a working GPU-P instance looks like but I also can't see a GPU in Task Manager and it doesn't seem to have any hardware acceleration.

After a single VM reboot the display resolution drops and locks and updating the drivers via documentation doesn't fix it. I tried the most recent windows ISO and also 20H1 but both have had this or similar issues.

I feel like I'm missing something or maybe the GPU drivers aren't actually copying successfully. Are we supposed to see our host GPU or are we supposed to see a Parsec vGPU device?

jamesstringerparsec commented 2 years ago

@jovaniedelacruz A working GPU-P instance will have your GPU listed in Device Manager.

You need to keep the hyper-v adapter disabled, then reboot. Stick to using Parsec for remote access, which will create a virtual monitor that can do up to 4k60 when connected via Parsec.

nikita-tomilov commented 2 years ago

@jamesstringerparsec Even though I do have hyper-v adapter disabled, it still defaults to 1024x768 video even when connecting via Parsec (sorry for ru-RU locale) image image image

Apart from that, good job and thanks for this very useful tool!

nikita-tomilov commented 2 years ago

My Minecraft still pops up with the OpenGL error even though ive install the proposed solution. Did you do anything special or did you run java or bedrock?

@Izooc I run Java edition (though, via TLauncher, I find it more convenient than vanilla launcher)

I've tested again and it seems that it is the issue that in 1.17 or higher they updated the OpenGL version they use (or smth similar) - 1.16.5 and lower versions of Minecraft are runnable on my VM, but 1.17 or 1.18 are not launchable with error 65542 image

Izooc commented 2 years ago

My Minecraft still pops up with the OpenGL error even though ive install the proposed solution. Did you do anything special or did you run java or bedrock?

@Izooc I run Java edition (though, via TLauncher, I find it more convenient than vanilla launcher)

I've tested again and it seems that it is the issue that in 1.17 or higher they updated the OpenGL version they use (or smth similar) - 1.16.5 and lower versions of Minecraft are runnable on my VM, but 1.17 or 1.18 are not launchable with error 65542 image

Ahhh, makes sense. Thanks.

nikita-tomilov commented 2 years ago

@Izooc I found a bit more interesting facts

This is 1.16.4 running image

And, fun fact, even 1.18.1 is running: image

However, right now I am logged in to VM twice - via Hyper-V Extended session (to change the resolution, as I mentioned earlier) and via Parsec

If I close Minecraft, disconnect from Parsec, close Hyper-V client and reconnect via Parsec, the resolution is back to 1024x768 and both Minecraft versions are no longer runnable with the aforementioned error.

If I once again disconnect from Parsec, log in to VM via Hyper-V client (setting resolution to 1080p), reconnect via Parsec and try to open Minecraft, both versions are runnable and playable.

Can you also try it the way I specified? It seems there is weird behaviour with how the GPU passthrough works if Hyper-V client is opened and not opened (ans, thus, the issue is not connected to Minecraft updating the OpenGL version as I previously thought). Also, when 1024x768 everything is sluggish, so there is a chance that GPU is not even activated in this mode.

nikita-tomilov commented 2 years ago

@jamesstringerparsec Even though I do have hyper-v adapter disabled, it still defaults to 1024x768 video even when connecting via Parsec (sorry for ru-RU locale) image

@jamesstringerparsec However, when Hyper-V client is attached to VM, there is also Microsoft Remote Display Adapter, if this can help with investigating the issue (the previous screenshot was taken without hyper-v client) image

Izooc commented 2 years ago

@Izooc I found a bit more interesting facts

This is 1.16.4 running image

And, fun fact, even 1.18.1 is running: image

However, right now I am logged in to VM twice - via Hyper-V Extended session (to change the resolution, as I mentioned earlier) and via Parsec

If I close Minecraft, disconnect from Parsec, close Hyper-V client and reconnect via Parsec, the resolution is back to 1024x768 and both Minecraft versions are no longer runnable with the aforementioned error.

If I once again disconnect from Parsec, log in to VM via Hyper-V client (setting resolution to 1080p), reconnect via Parsec and try to open Minecraft, both versions are runnable and playable.

Can you also try it the way I specified? It seems there is weird behaviour with how the GPU passthrough works if Hyper-V client is opened and not opened (ans, thus, the issue is not connected to Minecraft updating the OpenGL version as I previously thought). Also, when 1024x768 everything is sluggish, so there is a chance that GPU is not even activated in this mode.

Sorry I'm a bit dumb in this section, mainly used to vfio but forced to use Windows for gaming. Can you give step by step instructions. Sorry.

jovaniedelacruz commented 2 years ago

@nikita-tomilov I also experienced that trick with the 1024 resolution. I think it's best practice to open the hyper v session on the host to initialize the 1080p resolution and then parsec into the VM. I have one of the display drivers disabled as suggested but I wonder if the issue is coming from the parsec virtual display driver.

jamesstringerparsec commented 2 years ago

@jamesstringerparsec Even though I do have hyper-v adapter disabled, it still defaults to 1024x768 video even when connecting via Parsec (sorry for ru-RU locale) image

@jamesstringerparsec However, when Hyper-V client is attached to VM, there is also Microsoft Remote Display Adapter, if this can help with investigating the issue (the previous screenshot was taken without hyper-v client) image

can you please disable Microsoft Remote Display Adapter, reboot and connect with Parsec to the Vm?

Izooc commented 2 years ago

Weirdly enough I'm not experiencing any resolution problems, Minecraft just refuses to run, the microsoft remote display adapter doesnt even show up for me.

ernesti-02 commented 2 years ago

@Izooc I found a bit more interesting facts

This is 1.16.4 running image

And, fun fact, even 1.18.1 is running: image

However, right now I am logged in to VM twice - via Hyper-V Extended session (to change the resolution, as I mentioned earlier) and via Parsec

If I close Minecraft, disconnect from Parsec, close Hyper-V client and reconnect via Parsec, the resolution is back to 1024x768 and both Minecraft versions are no longer runnable with the aforementioned error.

If I once again disconnect from Parsec, log in to VM via Hyper-V client (setting resolution to 1080p), reconnect via Parsec and try to open Minecraft, both versions are runnable and playable.

Can you also try it the way I specified? It seems there is weird behaviour with how the GPU passthrough works if Hyper-V client is opened and not opened (ans, thus, the issue is not connected to Minecraft updating the OpenGL version as I previously thought). Also, when 1024x768 everything is sluggish, so there is a chance that GPU is not even activated in this mode.

This way Minecraft runs, but only when I am connected via the remote Desktop or Hyper-V Client as you mentioned. Then the Microsoft remote display Adapter appears. With it all works fine. My Problem is, I can´t connect with Parsec simultaneously (instant black screen on both ways). Is there any solution to this?

Izooc commented 2 years ago

I figured out my problem, didnt have Hyper-V Extended Session enabled so the driver wasnt there. I am having the same problem, Remote desktop signs out and parsec is just a black screen?

jlarisch commented 2 years ago

Resolution problem workaround: #59