Problem
Windows 11 ARM guests on macOS/Arm hosts are currently awkward to use with Retina/HiDPI displays and VMSVGA 3D enabled.
The local test system showed these specific issues:
- Setting VMSVGA VRAM to 256 MiB simply did not work with the current ARMv8 PCI MMIO layout. The 256 MiB VRAM BAR left insufficient low 32-bit PCI MMIO space for the VMSVGA3 MMIO BAR, so the Windows guest display stack did not initialize normally.
- A 5760x3240 Retina guest mode needs the additional VRAM. With the smaller practical VRAM configuration, resizing beyond a certain maximum screen size could produce gray or colorful display artifacts, consistent with insufficient framebuffer/surface memory for the requested mode.
- macOS fullscreen/autoresize requested logical host sizes instead of the Retina backing-pixel guest mode, so resizing did not scale correctly and the guest did not reliably enter true Retina resolutions.
- The Windows WDDM Guest Additions mode dropdown exposed the native Retina mode and then mostly legacy 4:3/5:4 fallback modes, with no useful 16:9 intermediate Retina modes.
- The macOS/Arm VMSVGA DX11 output path spent too much CPU on repeated readbacks and frontend repaint work.
Patch Series
I have split the work into seven pull requests so each subsystem can be reviewed independently:
- Expand ARMv8 PCI 32-bit MMIO to support 256 MiB VMSVGA VRAM.
- Reduce VMSVGA DX11 readback work and skip unchanged output updates.
- Reduce macOS Qt repaint and Dock preview overhead.
- Request Retina backing-size guest modes in macOS fullscreen.
- Add supporting Darwin/Qt build compatibility fixes.
- Add supporting DXMT/LLVM 17 build compatibility fixes.
- Add WDDM aspect-preserving Retina intermediate video modes.
Validation
Local validation was done on a Mac Studio with an Apple Studio Display, running macOS ARM64 with a Windows 11 ARM guest:
vram=256
- 3D acceleration enabled
- VMSVGA VRAM BAR at
0xe0000000..0xefffffff
- VMSVGA3 MMIO BAR at
0xf0400000..0xf07fffff
- Guest Additions run level 3
- guest mode
5760x3240x32
Measured active CPU in a repeated Windows Explorer open/close workload:
| Run |
Resolution |
Active CPU avg |
| Official VirtualBox 7.2.12 baseline |
3840x2160 |
257.3% |
| Local test build with PRs #743-#746 and #749, repeat 1 |
3840x2160 |
95.1% |
| Local test build with PRs #743-#746 and #749, repeat 2 |
3840x2160 |
97.6% |
| Local test build with PRs #743-#746 and #749 at Retina backing resolution, repeat 1 |
5760x3240 |
77.5% |
| Local test build with PRs #743-#746 and #749 at Retina backing resolution, repeat 2 |
5760x3240 |
68.9% |
For the WDDM mode-list change, I also validated the same intermediate modes through the existing driver's custom-mode registry path. Windows Display Settings exposed:
5120x2880
3840x2160
3200x1800
2880x1620
2560x1440
1920x1080
Notes
The Windows Guest Additions WDDM driver patch still needs final compile/install validation in a Windows WDK environment. The local macOS ARM64 build tree cannot build VBoxWddm because PATH_SDK_WINSDK10 is not configured.
Problem
Windows 11 ARM guests on macOS/Arm hosts are currently awkward to use with Retina/HiDPI displays and VMSVGA 3D enabled.
The local test system showed these specific issues:
Patch Series
I have split the work into seven pull requests so each subsystem can be reviewed independently:
Validation
Local validation was done on a Mac Studio with an Apple Studio Display, running macOS ARM64 with a Windows 11 ARM guest:
vram=2560xe0000000..0xefffffff0xf0400000..0xf07fffff5760x3240x32Measured active CPU in a repeated Windows Explorer open/close workload:
For the WDDM mode-list change, I also validated the same intermediate modes through the existing driver's custom-mode registry path. Windows Display Settings exposed:
5120x28803840x21603200x18002880x16202560x14401920x1080Notes
The Windows Guest Additions WDDM driver patch still needs final compile/install validation in a Windows WDK environment. The local macOS ARM64 build tree cannot build
VBoxWddmbecausePATH_SDK_WINSDK10is not configured.