x86 macOS / Linux Vulkan
Works · alpha- Host
- Linux x86_64, KVM
- Guest
- x86_64 macOS 13 Ventura
- Device
- reims-vgpu-pci (PCI)
- Backend
- Vulkan via metal2vulkan
- Boot
- vm/boot-x86.sh
Accelerated graphics for unmodified macOS guests under QEMU. The guest uses Apple's own AppleParavirtGPU.kext — no kext to install, no guest driver, stock macOS. Reims vGPU decodes the command stream on the host and executes it through Vulkan.
Read this first
Reims vGPU is research-quality software for experimentation and bring-up — not a frozen virtualization product. Four facts to calibrate expectations:
The QEMU device ABI, boot scripts, crate layout, backend behavior, and supported pathways may change without a stable compatibility guarantee.
Ventura is the guest release the project is used and tested against, on both rails. Other macOS versions may or may not work.
The working host backend is Vulkan — directly on Linux, and through MoltenVK on macOS. A direct Metal backend is a TODO, not a feature.
Reims vGPU is an independent open-source project. It is not affiliated with, sponsored by, or endorsed by Apple Inc.
See it run
macOS 13 Ventura with accelerated graphics on both rails — an Apple Silicon host and a Linux x86 host, running the same stock guest.

arm64 Ventura guest on macOS, attached via reims-vgpu-mmio.

x86_64 Ventura guest under KVM, attached via reims-vgpu-pci.
How it works
The path a frame takes from an app inside the VM to pixels in the host window. All product logic lives in Rust; the C shim stays thin on purpose.
Apps in the guest call Metal, exactly as they would on real hardware.
Apple’s own paravirtual GPU driver ships with macOS — and binds to the Reims vGPU device unchanged.
Rings over PCI BAR (x86_64) or sysbus MMIO (arm64) carry Metal-style commands to the host.
A deliberately thin C layer in the vendored QEMU fork wires QOM, MMIO/BAR, IRQ/MSI and forwards into Rust via HostOps.
Protocol decode, device model, memory mapping, scheduling. Nothing fails silently — declined commands carry typed reasons.
Vulkan on Linux; Vulkan via MoltenVK on macOS. Shaders translate Metal AIR → SPIR-V through metal2vulkan. Direct Metal: planned.
Pathways
Two combinations work today and one is on the bench — each pairs a specific host, guest, and backend. macOS 13 Ventura is the recommended guest on all of them.
Contribute
The project is at the stage where careful systems work moves the needle. Contributions are especially welcome on: