[Intel NUC8/8th Gen Intel iGPU] iGPU Passthrough and BIOS Video Settings: Minimum Memory and Aperture Size

Sep 1, 2022
566
215
68
42
Hello,

I'm setting up a Proxmox node on an 8th gen Intel NUC. This is the first time I've used an Intel iGPU this old, and I'm not familiar with how the iGPU settings in the BIOS work, or whether it's worth changing the defaults if I plan to use GVT-g-based iGPU passthrough.

The documentation ( https://www.intel.com/content/www/us/en/support/articles/000028294/graphics.html ) I found isn't great, but:
Some BIOS or UEFIs also allow users to define IGD Aperture Size, which provides the size of Peripheral Component Interconnect Express (PCIe) Base Address Registers (BAR)/Window for integrated graphics. The PCIe BAR/Window for integrated graphics is provided in two cases:
  1. Application requires direct access to system memory dedicated for integrated graphics.
  2. Application requiring de-swizzle or linearize view of graphics data (only applicable to Windows® 7 or older operating systems. Not applicable to Windows® 10).
Applications interact with BAR, which in turn redirects to the system memory that is dedicated for integrated graphics or regular system memory for de-swizzle. A large IGD Aperture Size is not a good idea 100% of the time, since this will increase BAR space in system address space.

IGD Aperture Size (Default) = 256 MB (for 10th Generation Intel® processors and older)
That seems to match my default configuration (see attached).

I'm not worried about the second one, but having a larger PCIe BAR seems like it might be useful for iGPU passthrough. On the other hand, when I was searching, a lot of posters on Reddit and various message boards seemed to notice that increasing the IGD Aperture Size to the maximum (1 GB in my case) caused screen tearing and other issues in, e.g., Ubuntu.

I'm guessing that was actually some sort of driver issue that might actually be better now (or not; this stuff is so old that it might not really be getting any patches anymore).

tl;dr Has anyone running PVE with iGPU passthrough on an 8th gen Intel seen any benefit from tweaking the Aperture Size, or is it better to just leave it at the default?
 
Code:
Not applicable to Windows® 10

Since Windows 10 is said not to be affected, isn't this a limitation on the guest OS side (the OS that is actually using the PCI device)?

*This has nothing to do with whether it’s a physical or virtual machine. So, I don't think this is a question about PVE.

If the iGPU’s shared memory works fine on your computer, then there’s probably no need to worry about it. You’ve never heard of that happening, have you?

I think the right thing to do would be to contact the vendor of the OS that actually uses the device.
 
Last edited:
Code:
Not applicable to Windows® 10

Since Windows 10 is said not to be affected, isn't this a limitation on the guest OS side (the OS that is actually using the PCI device)?

That warning was specific to the "Application requiring de-swizzle or linearize view of graphics data" item.

I'm entirely interested in the iGPU DMA thing (item 1).

I could go ask in communities for every guest OS I use, but I was hoping someone here might have already tried this (especially with 8th gen iGPU passthrough) and could provide some practical experience.