Skip to content

[Req]: Improve Windows guest Retina/HiDPI support on macOS ARM #742

Description

@moreaki

Problem

On a macOS/Arm host with a Retina display, a Windows 11 Arm guest using VMSVGA with 3D acceleration needs enough 32-bit PCI MMIO space for a 256 MiB framebuffer. A separate fullscreen-transition problem may prevent an already-running guest from receiving the Retina backing-pixel size when it enters macOS fullscreen; that second premise is still under exact A/B validation.

Minimal functional candidates

  • Expand ARMv8 MMIO32 for 256 MiB VMSVGA VRAM #743 expands the Armv8 32-bit PCI MMIO aperture from 256 MiB to 448 MiB. The aperture begins at the required 256 MiB-aligned 0xe0000000, leaving room for the 256 MiB VRAM BAR and the remaining platform/device allocations.
  • GUI: resend guest resize on macOS fullscreen transition #746 adds one macOS-only call to the existing guest-resize helper when the fullscreen view reaches its maximum size. The existing helper performs the logical-point to Retina-backing-pixel conversion. Direct fullscreen startup is not a valid reproduction because both patched and unpatched builds can reach 5760x3240 that way; the required gate is a windowed-to-fullscreen transition A/B.

The earlier WDDM mode-list proposal (#749) was closed. A source/build audit showed that its local driver path was not compiled or installed in the tested guest, so the observed Windows mode list could not validate that patch. The older screenshot comment below has been corrected in place.

Supporting, independently reproducible fixes

These are not functional HiDPI prerequisites, but were found while making the current VirtualBox tree buildable and the guest graphics path testable:

The runnable-build documentation request remains tracked in #751, but its former PR was closed because the document depended on unmerged prerequisites and was not independently actionable.

Two additional reports remain intentionally separate:

Other integration-hardening proposals from this investigation were closed when their premises or standalone reproductions did not survive review.

Performance candidates

The following draft PRs are optional performance candidates and are not part of the functional series:

No performance improvement is currently claimed for them. Each is being compared independently using the fixed dxmtbench tool on identical current-main-based builds. A sample is admissible only if its browser framebuffer, guest screenshot, host presentation/signature, launch, and graphics-log gates all pass. A candidate that does not produce a repeatable isolated benefit will be closed.

Current validation status

Base: origin/main commit 5ac81eda707fcf3fcb49f9281401ceac0fc70f4a.

Completed:

  • clean Darwin/Arm configure and full build of the surviving non-performance stack;
  • strict deep signature verification of the staged app, with VM hypervisor/JIT entitlements retained;
  • XPCOM management runtime: complete VBoxManage list vms and showvminfo results;
  • patched Expand ARMv8 MMIO32 for 256 MiB VMSVGA VRAM #743 runtime log: pci-mmio32 is 0xe0000000..0xfbffffff (469,762,048 bytes / 448 MiB), with VRamSize=268435456, VMSVGA and 3D enabled;
  • patched functional boot: Guest Additions level 3, guest mode 5760x3240, and a screenshotpng framebuffer exactly 5760x3240.

Still required before calling the functional series complete:

Target runtime configuration:

  • macOS Arm64 Retina host
  • Windows 11 Arm guest
  • VMSVGA, 3D acceleration enabled
  • 256 MiB VRAM
  • Guest Additions run level 3
  • 5760x3240 fullscreen functional check
  • 3840x2160 fixed-tool correctness/performance checks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions