[macOS Desktop] Transparent/blurry areas on Intel Mac due to backdrop-filter GPU compositor bug
Environment
- App: Codex Desktop v26.513.31313 (Electron 42.0.1)
- OS: macOS 13 Ventura (Darwin 22.6.0)
- Hardware: MacBook Pro 2017 (MacBookPro14,3)
- Intel Core i7 (3.1 GHz, 4-core)
- Intel HD Graphics 630 (integrated, 1.5 GB shared VRAM)
- AMD Radeon Pro 560 (discrete, 4 GB)
- Angle backend: defaults to OpenGL; also reproducible with
--use-angle=metal
Symptom
After launching Codex, the home page and plugins page show transparent/blurry areas where the desktop background is visible through the window. The affected areas correspond to elements using backdrop-filter: blur() (frosted glass / blur effects).
The bug does NOT occur when:
- Running on Apple Silicon Macs (M1/M2/M3)
- Running with
--in-process-gpu(but this causes significant UI lag)
Root Cause
backdrop-filter: blur() triggers the GPU compositor to capture background content via IOSurface for the blur effect. On Intel HD Graphics 630 under macOS 13, this IOSurface transfer between GPU process and renderer process fails or returns empty data, resulting in transparent pixels.
This is a Chromium/Electron GPU compositor bug specific to the Intel HD 630 driver + macOS 13 + IOSurface IPC path. It is not specific to Codex — any Electron app using backdrop-filter on this hardware combination would be affected.
Steps to Reproduce
- Launch Codex on an Intel Mac (2017 or similar) running macOS 13
- Navigate to the home page or plugins page
- Observe transparent/blurry areas where
backdrop-filter: blur()is used
Workaround
We developed a CDP (Chrome DevTools Protocol) runtime injection approach:
- Launch Codex with
--remote-debugging-port=9222 - After the page loads, inject
* { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }viaRuntime.evaluate - This eliminates the transparent areas with zero performance impact
Known trade-off: Rounded corner anti-aliasing quality is slightly reduced on Intel GPU (because backdrop-filter was accidentally creating compositor layers that improved border-radius rendering).
Full fix repository: https://github.com/Uncle-Gao/codex-gpu-fix
Suggested Fix (for Codex team)
Option A (quick): Detect Intel GPU at runtime and skip backdrop-filter effects, falling back to opaque backgrounds. The visual difference is minimal — mainly affects the frosted glass sidebar, which could use a solid rgba() background as fallback.
Option B (deeper): Ship a Chromium patch that works around the Intel HD 630 IOSurface bug. Alternatively, use --disable-gpu-rasterization selectively for backdrop-filter compositing only.
Option C (Chromium upstream): This is ultimately a Chromium bug. The Intel HD 630 macOS driver's IOSurface implementation is buggy, but Chromium could add a workaround (e.g., fall back to CPU readback for backdrop-filter on affected GPUs).
Related
- Fix repo with full investigation notes: https://github.com/Uncle-Gao/codex-gpu-fix
- Similar Chromium bug reports about Intel GPU + IOSurface on macOS
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗