What Is Hyper-V GPU Passthrough in Windows 10 and Windows 11?
GPU passthrough means giving a virtual machine direct or near-direct access to a physical graphics adapter installed in the host PC. Instead of relying only on the basic Hyper-V virtual display adapter, the guest operating system can use hardware acceleration for 3D rendering, video encoding, CUDA or DirectX workloads, remote desktop sessions, light gaming, AI tools, and graphics-heavy applications.
In Hyper-V, the phrase “GPU passthrough” is often used for two different technologies: Discrete Device Assignment (DDA), which assigns an entire PCIe GPU to one VM, and GPU Partitioning (GPU-P), which exposes a partition of the host GPU to the guest. On Windows 10 and Windows 11 client systems, the practical method most home and workstation users try is GPU-P, not true server-style DDA.
Typical Reasons to Attach a GPU to a Hyper-V VM
- Run software that refuses to start with the basic Hyper-V display adapter.
- Enable DirectX, OpenGL, Vulkan, CUDA, or hardware video decoding inside a VM.
- Test graphics drivers, game launchers, rendering tools, or video editors in isolation.
- Use GPU acceleration over enhanced session, RDP, Parsec, Sunshine/Moonlight, or another remote display stack.
- Build a disposable VM for experiments without installing heavy tools on the host system.
Hyper-V GPU Passthrough Support: DDA vs GPU-P on Windows 10/11
Before changing any VM settings, understand the support boundary. Microsoft documents Discrete Device Assignment as a Windows Server technology for assigning supported PCIe devices, including graphics adapters and NVMe devices, directly to a VM. In recent Microsoft troubleshooting guidance, DDA and GPU-P are explicitly framed as server-class scenarios; desktop-class hardware and Windows 10/11 client operating systems are not the supported target for those enterprise GPU assignment workflows.
| Technology | How It Works | Best Use Case | Windows 10/11 Client Reality |
|---|---|---|---|
| DDA | Passes an entire PCIe GPU to one VM. The host loses normal use of that GPU while it is assigned. | Windows Server hosts, trusted VMs, dedicated hardware, enterprise workloads. | Not a normal supported client-PC scenario. Requires compatible hardware, firmware, ACS/IOMMU, and careful security decisions. |
| GPU-P | Creates a GPU partition and attaches it to a Generation 2 VM using PowerShell. | Sharing part of the host GPU with a VM for acceleration. | Often used experimentally on Windows 10/11 Pro or Enterprise, but driver and update changes can break it. |
| RemoteFX vGPU | Older virtual GPU technology. | Legacy Windows Server/Hyper-V environments only. | Do not use it. RemoteFX vGPU was removed because of security issues. |
System Requirements for Hyper-V GPU Partitioning on Windows 10 and 11
GPU partitioning is sensitive to hardware, drivers, and the exact VM configuration. Before you run PowerShell commands, check every requirement below.
Host PC Requirements
- Windows edition: Windows 10 Pro, Enterprise, or Education; Windows 11 Pro, Enterprise, or Education. Hyper-V is not included in Home editions by default.
- Hyper-V enabled: the Hyper-V platform and management tools must be installed.
- Hardware virtualization: Intel VT-x/VT-d or AMD-V/AMD-Vi must be enabled in BIOS/UEFI.
- Modern GPU driver: install the latest stable driver for NVIDIA, AMD, or Intel graphics on the host before configuring the VM.
- Enough resources: at least 16 GB of RAM is recommended if the host and guest will both run graphics-heavy workloads.
Virtual Machine Requirements
- Generation 2 VM: use a UEFI-based Hyper-V virtual machine.
- Guest OS: Windows 10 or Windows 11 is the easiest target. Linux GPU-P scenarios are more limited and driver-dependent.
- Dynamic Memory off: use fixed memory allocation for better stability.
- Checkpoint created: create a checkpoint before adding the GPU adapter.
- Administrator PowerShell: all host-side commands must be run from an elevated PowerShell console.
Enable Hyper-V If It Is Not Installed
Open PowerShell as Administrator and run:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Restart Windows when prompted. After rebooting, open Hyper-V Manager from the Start menu.
Prepare the Hyper-V VM Before Adding the GPU
The VM must be shut down and configured consistently before a GPU partition adapter is attached. Do not run these commands while the VM is in a saved state.
Step 1: Set the VM Name Variable
Replace Win11-GPU with the exact name of your virtual machine:
$vm = "Win11-GPU"
Step 2: Turn Off the VM
Stop-VM -Name $vm -TurnOff
Step 3: Disable Automatic Checkpoints and Dynamic Memory
Set-VM -Name $vm -AutomaticCheckpointsEnabled $false
Set-VMMemory -VMName $vm -DynamicMemoryEnabled $false -StartupBytes 8GB
Step 4: Configure Cache and MMIO Settings
These settings are commonly used when attaching GPU resources to Hyper-V VMs. They help the guest map device memory correctly.
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
How to Enable GPU Partitioning in Hyper-V with PowerShell
The core GPU-P command is Add-VMGpuPartitionAdapter. It adds a virtual GPU partition adapter to the selected VM. On many systems, Hyper-V automatically selects the available partitionable GPU. If the command fails, your hardware, driver, Windows build, or Hyper-V feature set may not expose GPU-P correctly.
Step 1: Check for a Partitionable GPU
Get-VMHostPartitionableGpu
If the command returns GPU information, your host exposes at least one GPU that Hyper-V can see as partitionable. If it returns nothing, update the GPU driver, install all Windows updates, restart, and check BIOS virtualization settings.
Step 2: Add the GPU Partition Adapter
Add-VMGpuPartitionAdapter -VMName $vm
Step 3: Optionally Set GPU Resource Limits
Some configurations allow you to define minimum, maximum, and optimal values for VRAM, encode, decode, and compute resources. The exact behavior depends on the GPU and driver.
Set-VMGpuPartitionAdapter -VMName $vm `
-MinPartitionVRAM 80000000 `
-MaxPartitionVRAM 1000000000 `
-OptimalPartitionVRAM 1000000000 `
-MinPartitionEncode 80000000 `
-MaxPartitionEncode 1000000000 `
-OptimalPartitionEncode 1000000000 `
-MinPartitionDecode 80000000 `
-MaxPartitionDecode 1000000000 `
-OptimalPartitionDecode 1000000000 `
-MinPartitionCompute 80000000 `
-MaxPartitionCompute 1000000000 `
-OptimalPartitionCompute 1000000000
Step 4: Start the VM
Start-VM -Name $vm
At this point, Windows inside the VM may detect a GPU-related device, but hardware acceleration usually will not work correctly until the guest has access to the matching driver files.
Copy GPU Driver Files from the Host to the Hyper-V Guest
GPU-P depends heavily on the guest seeing driver components that match the host driver. The common manual approach is to copy the required driver folder from the host into the VM and then install the normal GPU driver package inside the guest if needed.
Find the Host Driver Folder
On the host, open File Explorer and check:
C:\Windows\System32\DriverStore\FileRepository
Look for folders related to your GPU vendor, for example:
nv_dispi.inf_amd64_...or similar for NVIDIA drivers.u*.inf_amd64_...,amdwddmg.inf_amd64_..., or similar for AMD drivers.iigd_dch.inf_amd64_...or similar for Intel graphics drivers.
Copy Driver Files into the VM
There are several ways to transfer the folder:
- Use Enhanced Session Mode copy and paste.
- Attach a temporary VHDX to the VM and copy files through it.
- Use a network share if networking is enabled and trusted.
- Mount the VM disk offline from the host, copy files, and detach it safely.
A common target location in the guest is:
C:\Windows\System32\HostDriverStore\FileRepository
How to Verify GPU Acceleration Inside the Hyper-V VM
After the VM starts, log in to the guest and check whether Windows sees the GPU acceleration path.
Check Device Manager
- Inside the VM, press Win + X and open Device Manager.
- Expand Display adapters.
- Look for your GPU or a GPU partition device rather than only Microsoft Basic Display Adapter.
- If there is a warning icon, open the device properties and check the error code.
Check DirectX Diagnostic Tool
- Press Win + R, type
dxdiag, and press Enter. - Open the Display tab.
- Check whether Direct3D acceleration is enabled and whether the GPU name appears correctly.
Check Task Manager
Open Task Manager inside the VM, go to Performance, and look for GPU activity. Then launch a GPU-aware application such as a browser with hardware acceleration, a video encoder, a 3D benchmark, or a rendering tool.
dxdiag
Get-PnpDevice -Class Display
Full GPU Passthrough with Discrete Device Assignment: What It Requires
Discrete Device Assignment is the closest Hyper-V equivalent to traditional PCIe passthrough. It removes the device from the host and mounts it into a VM. For GPUs, this can provide stronger isolation and more complete device access than GPU-P, but it also has stricter requirements and more risk.
DDA Requirements in Practice
- Windows Server Hyper-V host, not a typical Windows 10/11 desktop host.
- Server-class motherboard and firmware with proper PCIe ACS/IOMMU behavior.
- A GPU that the vendor supports for DDA or enterprise virtualization scenarios.
- A second GPU or remote management path for the host, because the assigned GPU is unavailable to the host.
- Trusted guest VM, because DDA exposes the whole device to the guest.
- No Dynamic Memory, no VM save/restore, and no ordinary live migration while the device is attached.
Typical DDA Command Flow
The following commands show the conceptual flow. They are not recommended for random desktop hardware unless you have confirmed compatibility and have a recovery plan.
$vm = "Server-GPU-VM"
$locationPath = "PCIROOT(...)#PCI(...)#PCI(...)"
Stop-VM -Name $vm -TurnOff
Set-VM -Name $vm -AutomaticStopAction TurnOff
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 3GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280MB -VMName $vm
Disable-PnpDevice -InstanceId "PCI\VEN_..." -Confirm:$false
Dismount-VMHostAssignableDevice -LocationPath $locationPath -Force
Add-VMAssignableDevice -LocationPath $locationPath -VMName $vm
Start-VM -Name $vm
Hyper-V GPU Passthrough Not Working: Common Problems and Fixes
Get-VMHostPartitionableGpu Returns Nothing
- Install the latest stable GPU driver on the host.
- Install all Windows updates and reboot.
- Check BIOS/UEFI settings for virtualization, VT-d, IOMMU, and SR-IOV if available.
- Make sure Hyper-V is enabled, not only Virtual Machine Platform.
- Try a different GPU driver branch if a recent driver update broke detection.
The VM Starts but Shows Microsoft Basic Display Adapter
- Copy the matching driver files from the host to the guest again.
- Install the vendor GPU driver inside the guest if the installer allows it.
- Restart the guest, then restart the host if the device still does not initialize.
- Remove and re-add the GPU partition adapter.
Device Manager Shows Code 43
Code 43 usually means the driver failed to initialize the GPU in the virtualized environment. Use matching host and guest driver files, avoid very old drivers, and test with a fresh Generation 2 VM. Some consumer GPU and driver combinations simply do not work reliably with GPU-P.
The VM Freezes or Has a Black Screen
- Shut down the VM from Hyper-V Manager and remove the GPU adapter.
- Increase assigned RAM and MMIO values.
- Disable Dynamic Memory.
- Connect using a different display method such as basic VMConnect first, then RDP or Parsec after drivers load.
Remove the GPU Partition Adapter
If the VM becomes unstable, remove the adapter from an elevated PowerShell window on the host:
Stop-VM -Name $vm -TurnOff
Remove-VMGpuPartitionAdapter -VMName $vm
Start-VM -Name $vm
Hyper-V GPU Passthrough Pros, Limitations, and Alternatives
✓ Advantages
- Lets a VM use real GPU acceleration instead of only a basic virtual display adapter.
- Useful for testing graphics applications, browsers, video tools, and driver-sensitive software.
- GPU-P can allow the host and VM to share the same physical GPU.
- No need to install a second hypervisor if Hyper-V is already part of your workflow.
- Works well for experimentation when hardware and drivers are compatible.
✗ Limitations
- Not a fully supported consumer feature on Windows 10/11 client hosts.
- Driver updates can break the configuration.
- Performance is not always equal to bare-metal GPU access.
- Anti-cheat systems, DRM, and some games may reject virtualized environments.
- DDA requires server-class hardware and can remove the GPU from host control.
Alternatives to Hyper-V GPU Passthrough
| Alternative | Best For | Notes |
|---|---|---|
| Run the workload on the host | Games, video editors, 3D apps | Most reliable and highest performance. |
| Windows Sandbox with vGPU | Disposable software testing | Easy, but not suitable for persistent GPU-heavy workloads. |
| WSL 2 GPU acceleration | Linux AI, ML, CUDA, development | Often better supported than a full GUI VM for development workloads. |
| VMware / VirtualBox 3D acceleration | Basic 3D desktop acceleration | Not equivalent to direct GPU passthrough, but easier for simple GUI needs. |
| Windows Server DDA | Dedicated enterprise GPU workloads | Use supported hardware and vendor documentation. |
Frequently Asked Questions About Hyper-V GPU Passthrough
Q Can I pass through my NVIDIA GeForce or AMD Radeon GPU to Hyper-V on Windows 11 Pro? ▼
Q Is GPU-P the same as full GPU passthrough? ▼
Q Do I need a second GPU? ▼
Q Will this improve gaming performance in a Hyper-V VM? ▼
Q Why did GPU passthrough stop working after a driver update? ▼
Q Can I use RemoteFX vGPU instead? ▼
🧩 Summary: The Best Way to Use a GPU in Hyper-V on Windows 10/11
On Windows 10 and Windows 11 client hosts, the most practical approach is GPU Partitioning with Add-VMGpuPartitionAdapter. It can give a Generation 2 Windows VM access to GPU acceleration, but it should be treated as an advanced and driver-sensitive configuration rather than a guaranteed consumer feature.
For production-grade full GPU passthrough, use Windows Server Hyper-V with Discrete Device Assignment, server-class hardware, vendor-supported GPUs, and a trusted VM model. For everyday users, always begin with a test VM, create a checkpoint, document the driver version that works, and keep a recovery path ready before changing GPU or Hyper-V settings.