Skip to content

Persistent tearing on map/canvas surfaces on Asahi Linux (aarch64) — not reproducible in stock Firefox on the same machine #13596

@CR0CKER

Description

@CR0CKER

Preliminary Checks

  • I have read and understood the important section above.
  • I have searched existing issues and avoided creating duplicates.
  • I am not filing an enhancement request.
  • I have checked that this issue cannot be reproduced on Mozilla Firefox.
  • I have checked that this issue can be reproduced once I removed all my Mods and Custom CSS.

What happened?

Zen exhibits visible tearing on rapidly-changing GPU surfaces — primarily <video> and slippy-map canvases (Komoot, RideWithGPS) when panning — while page chrome and static content render cleanly. The same machine, same Wayland session, same Mesa, and same Firefox base version (149) running stock Firefox shows no tearing. Software WebRender substantially reduces the tearing but does not eliminate it on map sites, and tearing in fullscreen video remains unacceptable. I have not found any pref combination that produces tear-free rendering in Zen on this hardware.

Pref configurations tested:

Config gfx.webrender.software gfx.webrender.compositor widget.dmabuf.disabled widget.wayland.explicit-sync.enabled Result
Zen defaults (hardware WebRender, Zen-baked compositor=false) false false false true Heavy tearing on maps and video
Hardware WebRender + Firefox-stock compositor false true false true Worse tearing than Zen defaults
Hardware WebRender + DMA-BUF/explicit-sync forced off false false true false Heavy tearing (similar to defaults)
Software WebRender (current workaround) true false true false Tearing reduced on maps but still visible when panning; fullscreen video tearing remains unacceptable

Eliminated as causes:

  • Profile state. Fresh profile via --ProfileManager, no extensions, no Mods, default prefs — tears identically.
  • Profile-baked omni.ja pref differences. I extracted defaults/preferences/firefox.js from Zen 1.19.11b's browser/omni.ja and from Flatpak Firefox 150's, and diffed them. The only GPU-relevant difference was gfx.webrender.compositor, which Zen ships as false. Forcing it to true (the Firefox-stock value) made tearing worse, not better.
  • Flatpak runtime / xdg-desktop-portal GPU path. Flatpak Firefox 150 from Flathub renders Komoot, RideWithGPS, and <video> cleanly with hardware WebRender on the same machine and Flatpak runtime stack. Splits Flatpak/sandbox out of the suspect list.
  • GPU / Mesa / Wayland / kernel. Native Firefox 149 (Fedora firefox-149.0.2-1.fc43.aarch64) renders cleanly with hardware WebRender. Same kernel, same Mesa, same compositor — only Zen tears.

By elimination, the cause appears to live in Zen's build itself — custom Gecko patches, compile-time flags, or build-level differences against upstream Firefox 149. I cannot rule this in or out from the user side; it would need someone with access to the Zen build configuration to compare WebRender / compositor / Wayland-related patches against stock Firefox 149.

Environment: Fedora 43, kernel 6.19.13-400.asahi.fc43.aarch64+16k, Apple Silicon via Asahi Linux (aarch64), Asahi Mesa, Wayland/GNOME.

Troubleshooting and the bisect documented above were performed with the assistance of Claude Code.

Expected behavior

Map canvases (Komoot, RideWithGPS) and <video> surfaces render without tearing when panning or playing, matching stock Firefox 149 on the same machine.

Actual behavior

Horizontal/diagonal frame-discontinuity tearing is visible on map canvases when panning and on <video> surfaces during playback; no pref combination eliminates it.

Steps to reproduce

  1. Install Zen 1.19.11b on Asahi Linux (aarch64) under Wayland (Fedora 43, GNOME).
  2. Launch Zen with default settings, or with --ProfileManager and create a fresh profile (no extensions, no Mods).
  3. Visit https://www.komoot.com/ or https://ridewithgps.com/ and open any route map.
  4. Pan the map by click-dragging or scroll-zooming.
  5. Observe horizontal/diagonal tearing on the map canvas.
  6. For comparison, open YouTube and play any video fullscreen — tearing is visible there too.
  7. Repeat steps 3–6 in stock Firefox 149 on the same machine — no tearing.

Screenshots and videos

Image

Version

1.19.11b

What platform are you seeing the problem on?

Linux (Flatpak)

What component is this issue related to?

Performance

Relevant log output if applicable

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions