From 70f2d4d54d0b7b99ef132444b9365e652653b9bb Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Wed, 15 Jul 2026 09:34:17 +0100 Subject: [PATCH] docs(agent): #95 is two Ghostty failures, not one OpenGL floor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Photo A (Acer): OpenGL 4.2 → OpenGLOutdated / SurfaceError. Photo B (XPS): silent exit after GDK_DISABLE=gles-api,vulkan with no OpenGL line — different machine, different root cause. A fix for only one is not done. --- agent/BACKLOG.md | 54 +++++++++++++++++++++++++++++------------ agent/HARDWARE-QUEUE.md | 11 ++++++--- agent/JOURNAL.md | 16 +++++++++--- 3 files changed, 58 insertions(+), 23 deletions(-) diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index 987d746..482bf5c 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -144,13 +144,14 @@ template source. Pass = Chromium launches after installation and HTTP/HTTPS mime defaults resolve to `chromium-browser.desktop` (and the intended live-ISO browser posture is explicit). -### 95. Live ISO/install: Ghostty does not open on old OpenGL +### 95. Live ISO/install: Ghostty does not open — **two distinct failures** -**Diagnosed 2026-07-14 on Acer Aspire M5-481T** (Dell XPS 9350 starts Ghostty -fine — machine-specific). From a working shell: +Two photos, two machines, **two different Ghostty death modes**. Do not +collapse them into one "old GPU" fix; a fix for (A) can leave (B) broken. + +**A — Acer Aspire M5-481T: OpenGL too old (explicit)** ``` -info: renderer=renderer.generic.Renderer(renderer.OpenGL) info(opengl): loaded OpenGL 4.2 warning(opengl): OpenGL version is too old. Ghostty requires OpenGL 4.3 warning(gtk_ghostty_surface): failed to initialize surface @@ -159,20 +160,41 @@ warning(gtk_ghostty_surface): surface failed to initialize err=error.SurfaceError ``` -Not a packaging/missing-binary bug: Ghostty 1.3.1 runs, reads config, then -refuses the GPU. Default terminal is Ghostty (`nomarchy.terminal`), so -SUPER+Return and the launcher entry are dead on anything ≤ GL 4.2 (Ivy Bridge -era and similar). +Ghostty 1.3.1 starts, loads config, hits the GPU floor, prints the reason, +returns to the shell (~2s). Anything ≤ GL 4.2 (Ivy Bridge era) is dead for +the default terminal. -**Fix direction:** detect/soft-fallback — e.g. Ghostty config for a software -GL path if one exists and works; or auto-pick a second terminal (kitty is what -Bernardo added by hand on the Acer) when `glxinfo`/EGL reports < 4.3; or -document + installer/hardware probe that swaps the default. Do not silently -leave SUPER+Return bound to a terminal that cannot map a surface. +**B — Dell XPS 9350 (photo without Acer bezel): silent exit after GDK_DISABLE** -**Pass:** on a GL 4.2 (or softGL) guest/host, SUPER+Return opens a usable -terminal; on modern GL, Ghostty remains default and themed. V2 softGL/QEMU is -acceptable for the fallback path; V3 on the Acer confirms the real iGPU. +``` +warning(gtk_ghostty_application): setting GDK_DEBUG= +warning(gtk_ghostty_application): setting GDK_DISABLE=gles-api,vulkan +~ 9s ) +``` + +Same Ghostty 1.3.1 / GTK path / config read — but **no** `info(opengl):` +line, **no** OpenGLOutdated, **no** SurfaceError. Process ends after ~9s +and leaves only the two `GDK_*` warnings. XPS Skylake iGPU is not a GL-4.2 +floor machine; this is a different surface/backend failure (forced desktop +OpenGL after disabling GLES+Vulkan, Wayland/EGL context, incomplete first +session after #123, …). Capture a second run with `GDK_DEBUG` / Ghostty +`-e` verbosity or `WAYLAND_DEBUG=1` before guessing the patch. + +**Shared product impact:** default terminal is Ghostty (`nomarchy.terminal`), +so SUPER+Return and the launcher entry are dead when either mode hits. +Bernardo worked around on the Acer by adding `kitty` to `home.packages`. + +**Fix direction (likely two slices):** +1. **(A)** soft-fallback or alternate default when GL < 4.3 (probe, or + ship a second terminal and bind/fallback). +2. **(B)** reproduce on XPS-class hardware or QEMU with a capable GL stack; + fix the silent path (must never exit without a user-visible error or a + working window). May interact with #123 if the first session is half-baked. + +**Pass:** SUPER+Return opens a usable terminal on **both** the Acer (A) and +the XPS (B); modern-GL machines still get themed Ghostty by default; a +regression that only fixes A or only B is not done. V2 may cover (A) via +softGL version pinning; (B) needs the XPS or a faithful GL/Wayland guest. ### 98. Boreal: button text renders black and is difficult to read diff --git a/agent/HARDWARE-QUEUE.md b/agent/HARDWARE-QUEUE.md index f5f370e..e2982f7 100644 --- a/agent/HARDWARE-QUEUE.md +++ b/agent/HARDWARE-QUEUE.md @@ -436,10 +436,13 @@ the **T14s** (webcam case). **without** running `home-manager switch` by hand. **Fail** = still need the recovery one-liner, or GTK/nm-applet still wrong until a manual switch (then the bake is still incomplete). -- [ ] **#95 Ghostty on Acer M5-481T (OpenGL 4.2)** — after a software-GL - or alternate-terminal fallback ships: SUPER+Return opens a usable - terminal on the Acer. On a modern-GL machine Ghostty remains the - default. Capture one screenshot of the open terminal on the Acer. +- [ ] **#95 Ghostty — two machines, two failure modes** — after the fix(es): + **(A) Acer M5-481T:** SUPER+Return opens a usable terminal (today: + OpenGL 4.2 → `OpenGLOutdated` / `SurfaceError`). **(B) Dell XPS 9350:** + SUPER+Return opens a usable terminal (today: silent exit after + `GDK_DISABLE=gles-api,vulkan`, no OpenGL line). A modern-GL box still + gets themed Ghostty by default. **Both** A and B required — fixing only + the GL floor is not done. - [ ] **#124 flake pin after main-ISO install** — on a machine installed from a **main-built** ISO (post-fix): `~/.nomarchy/flake.nix` nomarchy input must not re-resolve to a lagging `v1` that lacks diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index 9bb1f8a..3d7ccd7 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -31,14 +31,24 @@ Template: 2. **#124** — seeded flake hardcodes `?ref=v1` while installer writes main-era `nomarchy.hardware.*`; v1 lags (~hundreds of commits) → `nomarchy.hardware does not exist` on Acer rebuild/pull. - 3. **#95** enriched — Ghostty on Acer is OpenGL 4.2 < required 4.3 - (`error.OpenGLOutdated`); XPS starts Ghostty fine. + 3. **#95** — Ghostty fails on **both** machines for **different** reasons + (corrected after Bernardo: two photos ≠ one diagnosis). **(A) Acer:** + OpenGL 4.2 → `OpenGLOutdated`. **(B) XPS:** silent exit after + `GDK_DISABLE=gles-api,vulkan` with no OpenGL line — not a GL-floor bug. HARDWARE-QUEUE V3 rows for all three. Photos stay local (not committed). - **Verified:** V0 (docs/agent only). - **Pending:** implement #123 first (unblocks first-boot polish); then - #124; #95 is independent (old-GPU floor). + #124; #95 is independent and likely **two slices** (A vs B). - **Next suggestion:** #123 (installer bake) — highest blast radius. +## 2026-07-15 — Correct #95: two Ghostty photos, two causes +- **Task:** Bernardo noted two Ghostty-fail photos with different reasons. +- **Did:** #95 + HARDWARE-QUEUE rewritten: (A) Acer OpenGLOutdated explicit; + (B) XPS silent exit after GDK_DISABLE — must not be folded into one fix. +- **Verified:** V0 (docs only). +- **Pending:** — +- **Next suggestion:** still #123. + ## 2026-07-15 — #119: mime defaults must name a present .desktop (this commit) - **Task:** BACKLOG #119 — `text/plain` named vscode, which the live ISO never ships (same GIO-skip trap as #94, one key over).