[macOS Guest] Hardware Acceleration (WebRender) not woring in Firefox on Apple Virtualization Framework
- Dominant language
- Swift
- Stars
- 35.5k
- Forks
- 1.8k
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 7
Description
### **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.
Contributor guide
Assessment
This issue has not been assessed yet.