Why my Windows guest is not using PCI passthrough display card?

jjuk

New Member
Jun 30, 2023
21
2
3
I believe I have successfully mapped the PCI-E display card on the host and it can be seen on the Windows guest.

resource_mappings.png

vm_hardware.png

pci_device.png win10_device_manager.png win10_task_manager.png

But when I check "Advanced Display Information" in Windows, it actually uses "Red Hat VirtIO GPU DOD controller" instead of my nVidia card.

win10_advanced_display_settings.png I have checked the check box of "Primary GPU" in "PCI Device". I expected Windows should use the nVidia card. It's weird.:rolleyes:
 
I don't know how one configures Windows to use a specific GPU but you could just remove the virtual one by setting Display to None.
FYI. If set "Display" to "None". VNC console doesn't work. Even remote display such as Moonlight doesn't work too. In other words, no display at all.
 
FYI. If set "Display" to "None". VNC console doesn't work. Even remote display such as Moonlight doesn't work too. In other words, no display at all.
I do know that there is no virtual display when set to none. That's why it forces the operating system inside to use the passed through GPU.

I don't understand why a remote connection would not work. Does your PCI(e) passthrough work and do you see output on a physical display connected to the passed through GPU?
I cannot really help with passthrough of NVidia GPUs (or Windows), sorry, but there are lots of threads on this forum about them.
 
Last edited:
I guess you don't have a display connected to the RTX? So it makes sense for Windows to use the VirtIO GPU, since that's where a "display" is connected
 
I guess you don't have a display connected to the RTX? So it makes sense for Windows to use the VirtIO GPU, since that's where a "display" is connected
Correct. No display cable connected to the display card.

In fact, what makes me concern is the Refresh rate. It's only 1 Hz. When I use noVNC or SPICE, I'm sure it gives me 1 Hz refresh rate because of serious screen lagging. But when I use remote screen software (e.g. Moonlight) at client side, it's much better but still not smooth enough.

this video shows how lag it is -> this is the screen in Moonlight. It even worse if using noVNC or SPICE
Funny thing is that only the upper side of the screen has problem. You can see the upper part of the tree failed to display properly when I move my mouse left and right in the first person view.

I suspect it may cause by video codecs discrepancy between the Windows guest and the client - the client I'm now using is Raspberry Pi 5 with Raspberry Pi OS.

I'll fetch a Windows laptop and give it a test next week. Then the OS of both the guest and the client will be Windows 10.
 
Last edited:
Correct. No display cable connected to the display card.

In fact, what makes me concern is the Refresh rate. It's only 1 Hz.
This is a common issue when having no actual display connected. People usually work around it by plugging in a "dummy-plug" (that provides display-specs like resolution and refresh rate as if a physical display was connected).
 
This is a common issue when having no actual display connected. People usually work around it by plugging in a "dummy-plug" (that provides display-specs like resolution and refresh rate as if a physical display was connected).
I heard about "dummy-plug". I haven't considered about it because many people on the web say they successfully configure GPU passthrough, and run animations or games remotely without any screen issues. But none of them have mentioned using "dummy-plug".

Maybe it's the time to buy a HDMI dummy-plug to test.
 
Last edited:
I heard about "dummy-plug". I haven't considered about it because many people on the web say they successfully configure GPU passthrough, and run animations or games remotely without any screen issues. But none of them have mentioned using "dummy-plug".
Maybe first test it by temporarily connecting a physical display (that is turned on) to the GPU, before spending the money?
 
New update for my case; the problem is solved. There's nothing related to Proxmox configuration and is not related to hardware issue.

The screen problem I have is called "screen tearing". It's not same as "screen lagging" that commonly caused by high latency.
The only culprit is FPS. It must be limited to 60 fps or lower (for my situation) in Nvidia Control Panel.

Changing FPS in the applications, or in Windows, or in the remote desktop software have no effect at all.
Connecting a real monitor or a dummy HDMI plug to the display card in order to increase the screen refresh rate can't solve the issue of screen tearing.
Any other settings such as V-sync, antialiasing, video codec, etc. are not related too.

The Windows VM guest keeps using the Red Hat VirtIO with only 1.0 Hz refresh rate. It just affects the Windows desktop experience, but not those apps that I've explicitly assigned to use the display card and restricted the maximum FPS. These apps are always supposed to run and connect remotely.
 
Last edited: