You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 functional issues:
Setting VMSVGA VRAM to 256 MiB 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.
Functional HiDPI Patch Series
I have split the functional HiDPI work into small pull requests so each subsystem can be reviewed independently:
These are the patches that directly address the user-visible Retina/HiDPI behavior tracked by this issue.
Supporting Fixes Found During the Investigation
The following fixes were found while making the macOS/Arm Windows guest test path buildable and stable enough to validate the HiDPI work. They are intentionally tracked separately from the functional HiDPI series:
Performance Improvements Under Separate Validation
The macOS/Arm VMSVGA DX11 output path also showed high CPU cost from repeated readback and frontend repaint work. Those changes are performance improvements, not functional prerequisites for this HiDPI issue, and should be evaluated separately on top of the functional/stability baseline. They are currently draft pull requests until the throughput and latency impact is verified with reproducible 3D/UI benchmarks:
The reproducible benchmark source for this performance validation is https://github.com/moreaki/dxmtbench. I will update the performance pull requests with isolated results from that suite before treating them as final review candidates.
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
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
Additional screenshot proof is attached in the issue comments for fullscreen Retina mode and the HiDPI mode dropdown.
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 functional issues:
Functional HiDPI Patch Series
I have split the functional HiDPI work into small pull requests so each subsystem can be reviewed independently:
These are the patches that directly address the user-visible Retina/HiDPI behavior tracked by this issue.
Supporting Fixes Found During the Investigation
The following fixes were found while making the macOS/Arm Windows guest test path buildable and stable enough to validate the HiDPI work. They are intentionally tracked separately from the functional HiDPI series:
Non-DXMT VirtualBox support fixes
DXMT and VMSVGA/DXMT support fixes
std::atomic_bool.Performance Improvements Under Separate Validation
The macOS/Arm VMSVGA DX11 output path also showed high CPU cost from repeated readback and frontend repaint work. Those changes are performance improvements, not functional prerequisites for this HiDPI issue, and should be evaluated separately on top of the functional/stability baseline. They are currently draft pull requests until the throughput and latency impact is verified with reproducible 3D/UI benchmarks:
The reproducible benchmark source for this performance validation is https://github.com/moreaki/dxmtbench. I will update the performance pull requests with isolated results from that suite before treating them as final review candidates.
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..0xf07fffff5760x3240x32For 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:
5120x28803840x21603200x18002880x16202560x14401920x1080Additional screenshot proof is attached in the issue comments for fullscreen Retina mode and the HiDPI mode dropdown.
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
VBoxWddmbecausePATH_SDK_WINSDK10is not configured.