Skip to content

fix(desktop): Linux window draws on nouveau too, start check waits for the first frame (#10) - #13

Draft
aniruddhaadak80 wants to merge 2 commits into
mainfrom
fix/issue-10-nouveau-software-mode
Draft

aniruddhaadak80 wants to merge 2 commits into
mainfrom
fix/issue-10-nouveau-software-mode

Conversation

@aniruddhaadak80

Copy link
Copy Markdown
Owner

Follow-up for #10. The reporter's machine (GeForce GT 730, nouveau driver, Fedora 44 GNOME Wayland) still showed an empty window on 1.2.0 with both WEBKIT_DISABLE_DMABUF_RENDERER=1 and WEBKIT_DISABLE_COMPOSITING_MODE=1, so the fix on main (0d3c530) is not enough for nouveau.

What changes

  • Systems where nouveau drives the only GPU start in software graphics mode: LIBGL_ALWAYS_SOFTWARE=1 and WEBKIT_SKIA_ENABLE_CPU_RENDERING=1 on top of the safe-mode variables. Hybrid laptops (Intel or AMD beside nouveau) keep hardware drawing.
  • The start check now waits for the first frame on screen (of_boot_ok, sent from the inline script in index.html after two animation frames) instead of the page load event, because a page can load and still draw nothing.
  • The watchdog moves up one mode at a time: standard, safe, software, and remembers the mode. At the last mode it shows a native dialog offering the same tools in the web browser instead of an empty window.
  • Fixed a restart loop: with OPENFILE_GPU=1 and a stuck window the old watchdog restarted forever, because the new process kept OPENFILE_GPU=1.
  • On relaunch, WEBKIT_/LIBGL_ values the user set are no longer overwritten.
  • Graphics logic moved from main.rs to linux_gpu.rs with unit tests (level parsing, old marker files, nouveau detection from sysfs, plans, variables).

Tests

  • CI builds and runs the unit tests (rustc --test -D warnings).
  • Every Linux start target (Ubuntu 22.04/24.04, Fedora, Debian, Arch; X11 and Wayland; AppImage, deb, rpm) must now print OpenFile: first frame drawn, and also start in software mode (OPENFILE_SAFE_GPU=2) with a non-blank window.
  • fallback-check.mjs checks the page sends of_boot_ok exactly once inside the app, and nothing on the web.

Docs: troubleshooting (both copies) and changelog.

…r the first frame (#10)

- nouveau-only systems start in software graphics mode (LIBGL_ALWAYS_SOFTWARE, Skia CPU), the reporter's GT 730
  stayed empty with DMA-BUF and GPU compositing off
- the page tells the shell when its first frame is on screen (of_boot_ok); the watchdog waits for that instead of
  the page load and moves up one mode at a time: standard, safe, software
- at the last mode it offers the same tools in the web browser instead of an empty window
- OPENFILE_GPU=1 no longer restarts in a loop; user WEBKIT_*/LIBGL_* values still win on relaunch
- graphics logic moved to linux_gpu.rs with unit tests; CI runs them, requires the first-frame line and checks
  software mode draws on every Linux target
- troubleshooting and changelog updated
@vercel

vercel Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
openfile Ready Ready Preview Nov 11, 2026 5:16pm UTC
openfile-studio Ready Ready Preview Nov 11, 2026 5:16pm UTC

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant