docs(linux): park Slice L at L1 checkpoint

This commit is contained in:
Erik 2026-07-27 12:35:47 +02:00
parent 11501d52ca
commit 97a095d628
9 changed files with 275 additions and 39 deletions

View file

@ -4,6 +4,8 @@
Slice L0 completed at
`66f114b258c0c37b51a7c0e04ca0d6441f4b1699`.
Slice L1's implementation checkpoint landed at
`11501d52cad942850d88f83490710faf1d5cdf28`.
The same `AcDream.App` now builds and publishes for `linux-x64`; there is no
Linux gameplay or renderer fork.
@ -44,22 +46,51 @@ Rollback:
git revert 66f114b258c0c37b51a7c0e04ca0d6441f4b1699
```
## Next work — L1
## L1 implementation checkpoint
Do not claim Linux graphical support merely from publish success. L1 must:
Canonical seams:
1. start the exact package under the available X11 and Wayland sessions;
2. capture OS/display/compositor/GPU/driver/OpenGL vendor, renderer, version,
mandatory extensions, swap interval, refresh, DPI, and audio backend before
renderer construction;
3. create the OpenGL 4.3 core context and reject missing bindless texture or
shader draw parameters with one actionable report;
4. validate GLFW window/input callbacks, relative mouse/focus, framebuffer
sizing, clipboard, and monitor facts;
5. initialize OpenAL fail-open exactly as current Windows behavior permits;
6. render a packaged smoke scene, capture a screenshot, and close with zero
GL/OpenAL/window debt.
- `ACDREAM_DISPLAY_PROTOCOL=auto|x11|wayland` selects one immutable backend
before `Window.Create`.
- `GraphicalWindowBackendSelection` configures Silk's exact GLFW backend and
makes the packaged GLFW 3.4 native library win over older system installs.
- `GraphicalCapabilityRecord` captures platform, RID, display protocol, GL
identity/extensions/limits, framebuffer, input/window, audio, and terminal
ownership into one atomic report.
- `GraphicalGlFunctionProbe` actively validates bindless texture,
draw-parameters plus MDI, SSBO, timer query, sRGB/depth/stencil FBO, and
persistent coherent buffer behavior before renderer construction.
- Unsupported contexts exit with code 4 and a precise report. No legacy
renderer or fabricated fallback is introduced.
- Studio screenshot shutdown is deferred until the completed render frame;
accepted and rejected startup paths both report zero terminal ownership.
Historical test-only issue: two installed-DAT App tests still hard-code
`C:\Turbine\Asheron's Call`. They are not production blockers, but clean them
before claiming the complete App test suite on a clean Linux runner.
Evidence:
- native Windows 11 + AMD Radeon RX 9070 XT: every active GL probe passes,
OpenAL submits playback and disposes, the packaged smoke frame is intact,
and terminal ownership is zero;
- WSLg X11 and Wayland: packaged GLFW 3.4 and protocol selection are correct,
but llvmpipe lacks mandatory `GL_ARB_bindless_texture`;
- WSLg with `GALLIUM_DRIVER=d3d12` reaches the AMD GPU and OpenGL 4.6, but
still lacks mandatory `GL_ARB_bindless_texture`; this is a WSLg/Mesa
capability limit, not an acdream package-resolution defect;
- App tests pass 3,763 / 3 skips; the complete Release suite passes
8,826 / 5 skips;
- checkpoint:
`docs/research/2026-07-27-slice-l1-graphical-capability-checkpoint.md`.
Rollback:
```text
git revert 11501d52cad942850d88f83490710faf1d5cdf28
```
## Deferred continuation
Do not claim native Linux graphical support from WSLg. Run the exact
`linux-x64` package on a physical Linux AMD RadeonSI or supported NVIDIA
driver under the available X11/Wayland sessions. It must pass the same
capability report, packaged smoke frame, input/window/audio checks, and
zero-debt shutdown. The user deferred this physical-driver gate and Slices
L2L6 on 2026-07-27. L2 has not started; resume at the physical L1 gate.