Using Nvidia GPU as primary GPU in HVMs with pci passthrough to fix screen tearing

Apologies for the delayed response. To completely eliminate screen tearing, you must connect an external monitor directly to the graphics card designated for passthrough. Here’s how I resolved the issue in my own configuration:

I set up a dedicated sys-gui-gpu VM. After configuring all necessary permissions and security policies, I installed the NVIDIA driver in dom0. I then passed through the NVIDIA GPU to sys-gui-gpu and hid the secondary AMD GPU so it could be allocated to other APPVMs. Notably, sys-gui-gpu operates using the open-source Nouveau driver, which eliminated the need for proprietary software.

I primarily use the AMD-equipped VM for running Steam, streaming 4K video, and executing local LLMs via llama.cpp. With 24 GB of VRAM, it comfortably runs Qwen3.6-27B at 50–60 tokens per second with a 200K context window (when MTP is enabled). Disabling MTP allows for MAX model token context, though inference speed drops to approximately 30-35 tokens per second. I’d be glad to draft a detailed step-by-step guide if you’d like, though other community guides already cover Ollama integration.

For configuring an NVIDIA GPU in a dedicated VM specifically for 4K video playback, this community thread serves as an excellent reference: https://forum.qubes-os.org/t/create-a-gaming-hvm/19000.

As highlighted there, you’ll need to hide the GPU from the host system using the rd.qubes.hide_pci kernel parameter. Please don’t hesitate to reach out if you encounter any issues or have additional questions—I’m happy to assist!