diff --git a/.claude/skills/anland-mobilegl-plasma/SKILL.md b/.claude/skills/anland-mobilegl-plasma/SKILL.md index 37eaf64a..21be40a3 100644 --- a/.claude/skills/anland-mobilegl-plasma/SKILL.md +++ b/.claude/skills/anland-mobilegl-plasma/SKILL.md @@ -117,7 +117,7 @@ sudo -u swung0x48 env -i HOME=/home/swung0x48 PATH=/usr/bin XDG_RUNTIME_DIR=/run ## Test clients and how to verify -X11 on the GPU has its own driver, `scripts/x11-verify.sh` (preflight, measure before/after with glxgears at `vblank_mode=0` on both GLX paths, deploy-client/-kwin/-server, check, apps, stop); `scripts/device/x11-measure.sh` refuses to load the phone below 40% battery. +X11 on the GPU has its own driver, `scripts/x11-verify.sh` (preflight, measure before/after with glxgears at `vblank_mode=0` on both GLX paths (presentation throughput only: glxgears is fixed-function GL, which MobileGL does not implement, so its window is black by design), deploy-client/-kwin/-server, check, apps, stop); `scripts/device/x11-measure.sh` refuses to load the phone below 40% battery. Inside the container as root (`printf '...' | bash scripts/ct.sh `), `mgrun offscreen ` runs a client as swung0x48 in the live session through a login shell, with nothing but the surface mode and the log path set (log `/tmp/mgl-run.client.log`, override base with `MGLOG=/tmp/x.log`); a plain `env -i ... bash -l -c ''` as swung0x48 gets MobileGL the same way: ```sh diff --git a/docs/Disaggregated/notes/anland/plan-x11-gpu.md b/docs/Disaggregated/notes/anland/plan-x11-gpu.md index 2c6d02a7..1fa1eb8a 100644 --- a/docs/Disaggregated/notes/anland/plan-x11-gpu.md +++ b/docs/Disaggregated/notes/anland/plan-x11-gpu.md @@ -136,6 +136,11 @@ ordinary X apps (xterm, xeyes) for glamor rendering. glxgears 1280x720, % of one core, `x11-verify.sh measure`; "before" = the old stack (`-shm` llvmpipe Xwayland, GLX readback + PutImage). +> glxgears is fixed-function GL (glBegin/glEnd display lists, glLight), which MobileGL does not +> implement (Core Profile only), so its window stays black. These numbers measure presentation +> throughput of empty frames through each path, not rendering. Check X11 rendering with a +> core-profile or shader-based GLX client, and verify it from pixels (mgl-xgrab / XGetImage). + | run | fps | phone | glxgears | Xwayland | kwin | server | GPU | |---|---|---|---|---|---|---|---| | before, unpaced | 160 | 229% | 28% | 42% | 71% | 37% | 15% |