Skip to content

[macOS Guest] Hardware Acceleration (WebRender) not woring in Firefox on Apple Virtualization Framework #7671

@mrtnd

Description

@mrtnd

Summary

In a macOS guest VM (Apple Virtualization Framework) on M3 Pro, Firefox fails to utilize hardware acceleration despite the Guest OS having full Metal access. Safari and native apps perform perfectly, but Firefox falls back to WebRender (Software).

The logs show that while Firefox's WebGPU implementation correctly identifies the "Apple Paravirtual device," the Compositing engine blacklists it.

Environment

  • Host: MacBook Pro (M3 Pro)
  • Host OS: macOS 26.4.0 (Tahoe)
  • Guest OS: macOS 26.4.0
  • Virtualization: UTM (Apple Virtualization Backend)
  • Firefox: 149.0 (Stable)

Key Technical Data (from about:support)

  • Compositing: WebRender (Software)
  • Decision Log: WEBRENDER_QUALIFIED: blacklisted by env: Acceleration blocked by platform
  • Failure Code: FEATURE_FAILURE_WEBRENDER_INITIALIZE_RACE_FIRST
  • WebGPU Status: SUCCESS - Identifies wgpuName: "Apple Paravirtual device" on Metal backend.

The Conflict

There is a clear discrepancy between Firefox's WebGPU module (which accepts the virtual driver) and its WebRender/Compositing module (which blacklists it). Native guest apps (Safari/Maps) confirm that the AppleParavirtualizedGraphics.kext is functioning correctly in the guest.

Steps Taken

  1. Confirmed fluid 3D performance in Safari and Apple Maps.
  2. Attempted to bypass via about:config (gfx.webrender.all, layers.acceleration.force-enabled, webgl.force-enabled).
  3. Results: Firefox continues to report FEATURE_FAILURE_CGL_FBO and Exhausted GL driver options.
  4. Search Check: Searched UTM and Mozilla issues; no existing reports found for this specific driver blocklist on Apple Silicon virtualization.

Expected Result

Firefox should whitelist the Apple Paravirtual device for WebRender, as it already does for WebGPU.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions