Skip to content

Add optional Intel iGPU (GVT-g) passthrough via GVT_* env vars - #925

Open
Vault042 wants to merge 2 commits into
sickcodes:masterfrom
Vault042:gvt-g-env
Open

Add optional Intel iGPU (GVT-g) passthrough via GVT_* env vars#925
Vault042 wants to merge 2 commits into
sickcodes:masterfrom
Vault042:gvt-g-env

Conversation

@Vault042

Copy link
Copy Markdown

This adds first-class, opt-in support for passing an Intel integrated GPU into the VM using GVT-g (mediated GPU virtualization), which is the only GPU option on laptops whose iGPU is also driving the host display (full-device passthrough is not possible there).

Changes

Dockerfile (the generated Launch.sh):

  • New runtime env vars: GVT_MDEV_UUID, GVT_PCI_ADDR (default 06.0), GVT_DISPLAY (default off), GVT_IGD_OPREGION, GVT_ROMFILE.
  • When GVT_MDEV_UUID is set, Launch.sh appends:
    -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/<uuid>,addr=<addr>,display=<display>[,x-igd-opregion=on][,romfile=<rom>]
  • When unset (the default), nothing changes — zero impact on existing users.

README: new "Intel iGPU passthrough (GVT-g)" section with host setup, a full docker run example, the env var table, and caveats.

Verified

Tested end-to-end on an UHD 620 laptop (8086:5917): macOS enumerates the vGPU, boots, and the i915ovmf ROM gives a UEFI boot display with the QEMU 9 shipped in these images. Known limitation (documented in the README): no QE/CI acceleration on mediated GPUs — upstream issue acidanthera/bugtracker#1914.

Note for newer host QEMU (>= 10/11): GVT_IGD_OPREGION/GVT_ROMFILE should be left empty there (OVMF can hang); the plain device still enumerates in macOS.

Related: #133. Companion walkthrough repo: https://github.com/Vault042/Docker-OSX-GVT-g

@Vault042 Vault042 mentioned this pull request Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant