Hyper-V · GPU Acceleration · Windows 10 & 11

How to Pass Through a GPU in Hyper-V on Windows 10 and Windows 11
GPU-P · DDA · Troubleshooting

A practical guide to using a physical graphics card inside a Hyper-V virtual machine, including what is officially supported, what works only as GPU partitioning, and how to configure a Windows VM step by step.

⏱ 14 min read 🪟 Windows 10 Pro / Enterprise 🪟 Windows 11 Pro / Enterprise 🖥️ Hyper-V 🎮 GPU Partitioning

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.

💡
Quick Summary If you are using Windows 10 or Windows 11 as the Hyper-V host, treat GPU-P as the realistic method and DDA as a server-class feature. A normal desktop PC with Windows 11 Pro may expose GPU-P cmdlets, but this does not mean Microsoft guarantees the setup for every GPU, driver, or workload.

Typical Reasons to Attach a GPU to a Hyper-V VM

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.
⚠️
Important The steps below focus on GPU-P because it is the method Windows 10 and Windows 11 users most commonly attempt on Hyper-V client hosts. Always create a checkpoint or backup before experimenting. A Windows update, GPU driver update, or Hyper-V configuration change can require you to repeat the setup.

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

Virtual Machine Requirements

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
Recommendation Start with 8 GB of RAM for the VM and 32 GB of high MMIO space. If the guest fails to boot or the GPU does not initialize, increase RAM and review driver compatibility before changing many variables at once.

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:

Copy Driver Files into the VM

There are several ways to transfer the folder:

A common target location in the guest is:

C:\Windows\System32\HostDriverStore\FileRepository
⚠️
Driver Matching Matters If the host driver updates, the guest may stop using the GPU partition correctly. When that happens, update or recopy the matching driver files and restart both host and guest.

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

  1. Inside the VM, press Win + X and open Device Manager.
  2. Expand Display adapters.
  3. Look for your GPU or a GPU partition device rather than only Microsoft Basic Display Adapter.
  4. If there is a warning icon, open the device properties and check the error code.

Check DirectX Diagnostic Tool

  1. Press Win + R, type dxdiag, and press Enter.
  2. Open the Display tab.
  3. 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

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
🛑
Do Not Experiment Blindly Dismounting the wrong device can break host display output, storage, networking, or input. If you only have one GPU and no remote access, full DDA experiments can leave you without a usable console until you recover from Safe Mode, remote PowerShell, or offline servicing.

Hyper-V GPU Passthrough Not Working: Common Problems and Fixes

Get-VMHostPartitionableGpu Returns Nothing

The VM Starts but Shows Microsoft Basic Display 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

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?
You may be able to use GPU partitioning experimentally, but true DDA-style passthrough is not the normal supported scenario for Windows 11 Pro on consumer desktop hardware. Success depends on the GPU, driver, Windows build, VM configuration, and how the application uses the GPU.
Q Is GPU-P the same as full GPU passthrough?
No. GPU-P gives the VM access to a partitioned GPU resource while the host can continue using the same physical GPU. Full passthrough with DDA assigns the entire PCIe device to one VM and removes normal host access while it is attached.
Q Do I need a second GPU?
For GPU-P, usually no, because the host and guest can share the GPU. For DDA, a second GPU or remote management method is strongly recommended because the assigned GPU is taken away from the host.
Q Will this improve gaming performance in a Hyper-V VM?
It can improve graphics acceleration compared with the basic Hyper-V display adapter, but it is not guaranteed to deliver bare-metal gaming performance. Anti-cheat systems, DRM, input latency, display remoting, and driver behavior can all make gaming unreliable inside a Hyper-V VM.
Q Why did GPU passthrough stop working after a driver update?
GPU-P is sensitive to driver matching. If the host GPU driver changes, the guest may still have older copied driver components. Recopy the matching driver folder into the VM, reinstall or repair the guest driver, remove and re-add the GPU partition adapter, and reboot both systems.
Q Can I use RemoteFX vGPU instead?
No. RemoteFX vGPU is obsolete and was removed because of security vulnerabilities. Use GPU-P, DDA on supported Windows Server hardware, WSL 2 GPU acceleration, or another virtualization approach 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.