Skip to content

[macOS Desktop] Transparent/blurry areas on Intel Mac due to backdrop-filter GPU compositor bug #23458

@Uncle-Gao

Description

@Uncle-Gao

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

  1. Launch Codex on an Intel Mac (2017 or similar) running macOS 13
  2. Navigate to the home page or plugins page
  3. Observe transparent/blurry areas where backdrop-filter: blur() is used

Workaround

We developed a CDP (Chrome DevTools Protocol) runtime injection approach:

  1. Launch Codex with --remote-debugging-port=9222
  2. After the page loads, inject * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; } via Runtime.evaluate
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't working

    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