-
Notifications
You must be signed in to change notification settings - Fork 12.2k
Closed
Labels
perfIndicates a performance issue or need for optimizationIndicates a performance issue or need for optimizationwebRelates to opencode on web / desktopRelates to opencode on web / desktop
Description
Problem
On Ubuntu 25.10 (Wayland), OpenCode freezes when moving the window between monitors with different refresh rates (60Hz + 165Hz). The process stays alive; the UI becomes unresponsive and must be killed. This happens even with the terminal panel closed.
Environment
- Ubuntu 25.10, GNOME/Mutter (Wayland)
- Dual monitors: 60Hz + 165Hz
- NVIDIA RTX 4060 (driver 590.48.01 open)
Repro
- Start OpenCode on a Wayland session.
- The app forces X11/XWayland (GDK_BACKEND=x11 / WINIT_UNIX_BACKEND=x11).
- Move the window between monitors while windowed.
- UI freezes (process still alive).
Evidence
- Debug logs show Rust + UI heartbeats continue during the freeze.
- gnome-shell logs: "Frame has assigned frame counter but no frame drawn time" at the freeze time.
- No kernel NVRM/Xid, segfault, or coredump entries.
Workaround (Confirmed)
Run native Wayland (do not force X11):
OC_ALLOW_WAYLAND=1 env -u GDK_BACKEND -u WINIT_UNIX_BACKEND -u WEBKIT_DISABLE_DMABUF_RENDERER -u WEBKIT_DISABLE_COMPOSITING_MODE bun run tauri devProposed Fix
- On Linux, avoid forcing X11 by default (or auto-detect mixed refresh rate setups and prefer native Wayland).
- Suggestion: add a Settings toggle to switch between Native Wayland and X11 fallback. The toggle would set/unset these env vars on Linux:
- GDK_BACKEND
- WINIT_UNIX_BACKEND
- WEBKIT_DISABLE_DMABUF_RENDERER
- WEBKIT_DISABLE_COMPOSITING_MODE
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
perfIndicates a performance issue or need for optimizationIndicates a performance issue or need for optimizationwebRelates to opencode on web / desktopRelates to opencode on web / desktop