Unable to passthrough Intel® UHD Graphics to a Hyper-V Using DDA on Windows11 Pro

fti-samadhan 20 Reputation points
2024-05-28T17:07:36.02+00:00

I have an Intel N100 CPU machine with an integrated GPU (Intel® UHD Graphics) running the latest Windows 11 Pro.

I created a VM with Hyper-V and want to pass through the Intel GPU to this VM using Discrete Device Assignment (DDA).

This would enable the VM to utilize the GPU for enhanced graphical performance.

 

Based on the system requirements for Hyper-V on Windows Pro, in order to perform DDA, the processor must have Intel's Extended Page Table (EPT).

My Intel N100 CPU supports EPT:

Ref :  Intel Processor N100 Specifications

https://filestore.community.support.microsoft.com/api/images/f79c52e2-9086-4203-94e3-42e6a3657eac?upload=true&fud_access=wJJIheezUklbAN2ppeDns8cDNpYs3nCYjgitr%2BfFBh2dqlqMuW7np3F6Utp%2FKMltnRRYFtVjOMO5tpbpW9UyRAwvLeec5emAPixgq9ta07Dgnp2aq5eJbnfd%2FU3qhn54uMhYM5NgllefYifepBXzQBKiBJkMpEDGdWPo0SHRk1n6gH%2F5knrSMG4RNgqTcLSUzsA1nkSnLSuxALR6Qq0PIa6zMBgYu6V9b7wfca0kqDpISp8BE5V3Wb4I14pJOHi8vXhXHAr12qU7%2FfNBRqYl0sL%2B2R4Oa9eDbpCLaMSJ81EO50KSpk4jXPLGFsFkWXjzZQuer0xIjC2V2edTBlLjIFkRC%2BPtZG4PpoDZhKxGs3cKRdpzSdoDDSv%2FRyKk3iyNGM3X%2FaVVhoINoGKTNNzrqbxiqzgHqNapUs3DhsqxGlE%3D

I am following the Official Instructions for Deploy Graphics Device to pass an iGPU PCIe device into a virtual machine (VM) Using DDA

Ref : Deploy graphics devices by using Discrete Device Assignment | Microsoft Learn

Here is the systeminfo result for Hyper-V Requirement.

User's image I am trying to do this by following the DDA steps, but it failed on this error:

Steps I followed:

  1. Shut down the VM.
  2. Open Device Manager, expand Display adapters, and select the GPU
  3. Collect PCIROOT value from "Location paths"
  4. Disable the GPU in Device Manager.
  5. Configure the VM for DDA via PowerShell as follows:
PS C:\Users\samadhan> Set-VM -Name VMName -AutomaticStopAction TurnOff 
PS C:\Users\samadhan> Set-VM -VMName VMName -GuestControlledCacheTypes $true 
PS C:\Users\samadhan> Set-VM -VMName VMName -GuestControlledCacheTypes $true 
PS C:\Users\samadhan> Set-VM -VMName VMName -LowMemoryMappedIoSpace 128Mb 
PS C:\Users\samadhan> Set-VM -VMName VMName -HighMemoryMappedIoSpace 18000Mb

  1. Attempt to dismount the device with:
PS C:\Users\samadhan> Dismount-VMHostAssignableDevice -force -LocationPath "PCIROOT value"

Error Encountered:

Dismount-VMHostAssignableDevice : The operation failed. 
The current configuration does not allow for OS control of the PCI Express bus. Please check your BIOS or UEFI 
settings. 
At line:1 char:1 
+ Dismount-VMHostAssignableDevice -force -LocationPath "PCIROOT(0)#PCI( ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo          : InvalidArgument: (:) [Dismount-VMHostAssignableDevice], VirtualizationException 
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.DismountVMHostAssignableDevice  


Error Screenshot:

https://filestore.community.support.microsoft.com/api/images/01df34e9-8b5c-43ea-8a52-400a94c57fb2?upload=true&fud_access=wJJIheezUklbAN2ppeDns8cDNpYs3nCYjgitr%2BfFBh2dqlqMuW7np3F6Utp%2FKMltnRRYFtVjOMO5tpbpW9UyRAwvLeec5emAPixgq9ta07Dgnp2aq5eJbnfd%2FU3qhn54uMhYM5NgllefYifepBXzQBKiBJkMpEDGdWPo0SHRk1n6gH%2F5knrSMG4RNgqTcLSUzsA1nkSnLSuxALR6Qq0PIa6zMBgYu6V9b7wfca0kqDq44Pp%2BVaVGNne7o0MmQlC01dz%2B8JbrV%2BokJTvhVUSHFzk%2FY2gEM%2FM9V39qFSfpAw9pQ17MaUEOZ5htGIXvADNjtXb3742BeeITskiAxUSrnQ7MXoT%2FjGGkUWBipfD9zj%2BoVf2QsNvIve0FvY8vKbZm2az1zt5%2Bf%2Fpo%2FEPh5QbM2DSlgTtpI0ng%2BJl92UbrTG4%3D

Windows 11 Pro System Details :

https://filestore.community.support.microsoft.com/api/images/d6cfe482-5e7f-4482-a4fd-6d3e4438d081?upload=true&fud_access=wJJIheezUklbAN2ppeDns8cDNpYs3nCYjgitr%2BfFBh2dqlqMuW7np3F6Utp%2FKMltnRRYFtVjOMO5tpbpW9UyRAwvLeec5emAPixgq9ta07Dgnp2aq5eJbnfd%2FU3qhn54uMhYM5NgllefYifepBXzQBKiBJkMpEDGdWPo0SHRk1n6gH%2F5knrSMG4RNgqTcLSUzsA1nkSnLSuxALR6Qq0PIa6zMBgYu6V9b7wfca0kqDoU26f9D5rQJZmsjmlxkmL1xNisZPvU3foSg%2FCUYkSL4%2B4U19kMl3XyY%2BaQNnXYJL9pGHTqJBmrLEap9IZyd0pBe6JaNDrMXlPVr%2BbzMvpLS2Z0ODNszgzsBgFWJkjLbMtANRUAS1HInEKAbtchv3f8k6IGyD3hfZHQ9qKd2HczsDbDtk5SKdlIAKmVydYDjPc%3D

Hyper-V Manager Version :

https://filestore.community.support.microsoft.com/api/images/c7ee7802-fdb8-44d8-8153-0040a80df15e?upload=true&fud_access=wJJIheezUklbAN2ppeDns8cDNpYs3nCYjgitr%2BfFBh2dqlqMuW7np3F6Utp%2FKMltnRRYFtVjOMO5tpbpW9UyRAwvLeec5emAPixgq9ta07Dgnp2aq5eJbnfd%2FU3qhn54uMhYM5NgllefYifepBXzQBKiBJkMpEDGdWPo0SHRk1n6gH%2F5knrSMG4RNgqTcLSUzsA1nkSnLSuxALR6Qq0PIa6zMBgYu6V9b7wfca0kqDp8cpY4%2FqPYgsf9Pf8hI4mHA5zdxBH4WY6C3%2FM0g55jcbfNG4tdgKdxaprdsjoh2roNXJnI2nmbUBkVqQq2wPb8Vk8%2BrtOu%2B4di6Rv4J6db9uON4ul0B5%2Bc0hwY1tHb0wPoRuAMk9OvPE9eZK7JWP824diUYlZCL1MEpgmuEkR8LmRrmV%2FJco%2BQo%2BntpthTWjo%3D

Samadhan_1-1716890256863

Samadhan_2-1716890534233

Here is the SurveyDDA.ps1 result.

PS C:\WINDOWS> .\SurveyDDA.ps1
Executing SurveyDDA.ps1, revision 1
Generating a list of PCI Express endpoint devices


Intel(R) USB 3.10 eXtensible Host Controller - 1.20 (Microsoft)
Old-style PCI device, switch port, etc.  Not assignable.


Intel SD Host Controller
Old-style PCI device, switch port, etc.  Not assignable.


 PCI Express Root Port #9 - 54B0
Old-style PCI device, switch port, etc.  Not assignable.


High Definition Audio Controller
Old-style PCI device, switch port, etc.  Not assignable.


Intel(R) Platform Monitoring Technology Driver
BIOS kept control of PCI Express for this device.  Not assignable.


 Shared SRAM - 54EF
Old-style PCI device, switch port, etc.  Not assignable.


 SPI (flash) Controller - 54A4
Old-style PCI device, switch port, etc.  Not assignable.


Intel(R) USB 3.20 eXtensible Host Controller - 1.20 (Microsoft)
Old-style PCI device, switch port, etc.  Not assignable.


 PCI Express Root Port #7 - 54BE
Old-style PCI device, switch port, etc.  Not assignable.


Intel(R) Management Engine Interface #1
Old-style PCI device, switch port, etc.  Not assignable.


 PCI Express Root Port #11 - 54B2
Old-style PCI device, switch port, etc.  Not assignable.


Intel(R) Serial IO I2C Host Controller - 54E8
Old-style PCI device, switch port, etc.  Not assignable.


Standard NVM Express Controller
BIOS kept control of PCI Express for this device.  Not assignable.


Intel(R) Ethernet Controller (3) I225-V
BIOS kept control of PCI Express for this device.  Not assignable.

 SMBus - 54A3
Old-style PCI device, switch port, etc.  Not assignable.

LPC/eSPI - 5481
Old-style PCI device, switch port, etc.  Not assignable.

Intel(R) Serial IO I2C Host Controller - 54EB
Old-style PCI device, switch port, etc.  Not assignable.

Intel(R) Wi-Fi 6 AX200 160MHz
BIOS kept control of PCI Express for this device.  Not assignable.

Intel(R) Host Bridge/DRAM Registers - 461C
BIOS requires that this device remain attached to BIOS-owned memory.  Not assignable.

Standard SATA AHCI Controller
Old-style PCI device, switch port, etc.  Not assignable.

Intel(R) UHD Graphics
BIOS requires that this device remain attached to BIOS-owned memory.  Not assignable.


From the SurveyDDA.ps1 result, it shows the following for Intel(R) UHD Graphics:

User's image

Is there are any known limitations or issues with using Windows 11 Pro for iGPU pass-through for Hyper-V ?

Hyper-V
Hyper-V
A Windows technology providing a hypervisor-based virtualization solution enabling customers to consolidate workloads onto a single server.
2,744 questions
Windows 11
Windows 11
A Microsoft operating system designed for productivity, creativity, and ease of use.
10,021 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Ian Xue 38,046 Reputation points Microsoft Vendor
    2024-05-30T04:13:34.3333333+00:00

    Hi,

    Hope you're doing well.

    Using Windows 11 Pro for iGPU (integrated GPU) pass-through with Hyper-V has several known limitations and issues:

    1. Hyper-V on Windows 11 Pro does not natively support direct pass-through of integrated GPUs. Hyper-V primarily supports GPU partitioning and RemoteFX vGPU, but RemoteFX has been deprecated due to security concerns.
    2. Hyper-V on Windows 11 supports GPU partitioning (also known as GPU-P), which allows sharing of a single GPU among multiple virtual machines. However, this is mostly supported on discrete GPUs and may not work reliably with integrated GPUs.
    3. Proper driver support for iGPU pass-through or partitioning might be limited. Even if GPU partitioning is theoretically possible, actual implementation could be hindered by driver compatibility issues, leading to unstable or degraded performance.
    4. Virtualizing GPU resources typically incurs some performance overhead. Integrated GPUs, which already have limited performance compared to discrete GPUs, may not provide satisfactory performance when shared among multiple VMs.
    5. Security and stability issues are common with GPU pass-through setups. Inconsistent behavior, crashes, or security vulnerabilities could arise due to the complexity of sharing GPU resources between host and guest systems.
    6. Integrated GPUs are generally less powerful than dedicated GPUs. Their suitability for tasks requiring GPU pass-through is limited, especially for workloads like gaming, AI/ML, or 3D rendering which demand higher performance.
    7. Setting up GPU pass-through or partitioning can be complex and may require significant manual configuration and troubleshooting, which might not be ideal for all users.

    Given these limitations, for scenarios requiring robust GPU pass-through, it is often recommended to use a dedicated server-grade setup with proper support for GPU virtualization or using more suitable platforms such as Windows Server editions that offer broader support for GPU virtualization features.

    Best Regards,

    Ian Xue


    If the Answer is helpful, please click "Accept Answer" and upvote it.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.