docs(linux): park Slice L at L1 checkpoint
This commit is contained in:
parent
11501d52ca
commit
97a095d628
9 changed files with 275 additions and 39 deletions
|
|
@ -0,0 +1,122 @@
|
|||
# Slice L1 graphical capability checkpoint
|
||||
|
||||
**Date:** 2026-07-27
|
||||
**Production commit:** `11501d52cad942850d88f83490710faf1d5cdf28`
|
||||
**Status:** implementation complete; further Linux graphical work deferred by
|
||||
the user on 2026-07-27. The supported physical-Linux driver matrix remains the
|
||||
first gate when Slice L resumes.
|
||||
|
||||
## Scope
|
||||
|
||||
This checkpoint establishes the Linux/Windows graphical startup oracle before
|
||||
renderer construction. It does not add a renderer fallback and does not change
|
||||
gameplay or visual behavior.
|
||||
|
||||
`GraphicalHostPlatformServices` now owns an immutable GLFW backend selection.
|
||||
`ACDREAM_DISPLAY_PROTOCOL=auto|x11|wayland` is consumed once before
|
||||
`Window.Create`. The platform owner configures the exact
|
||||
`GlfwProvider.UninitializedGLFW` instance used by Silk's window backend.
|
||||
|
||||
Silk 2.23 asks for `libglfw.so.3.3`, while its packaged multi-backend GLFW 3.4
|
||||
asset is `libglfw.so.3`. The default native search order previously selected
|
||||
Ubuntu's machine-global GLFW 3.3 before reaching the packaged 3.4 library.
|
||||
Startup now prioritizes the application directory inside Silk's path resolver,
|
||||
so X11/Wayland selection and package provenance are deterministic.
|
||||
|
||||
Before any renderer object is created, the client records:
|
||||
|
||||
- OS, RID, requested and active display protocol, GLFW backend/version;
|
||||
- GL vendor, renderer, version, GLSL, context flags/profile, limits, and every
|
||||
extension;
|
||||
- default framebuffer color/depth/stencil/MSAA/sRGB facts;
|
||||
- window, monitor, refresh, framebuffer/logical size, and input-device facts;
|
||||
- audio request/availability/playback/disposal state;
|
||||
- window/GL/input/audio ownership and terminal shutdown state.
|
||||
|
||||
Advertisement is not treated as proof. A balanced active probe executes:
|
||||
|
||||
- bindless texture handle, resident, and non-resident calls;
|
||||
- a shader using `gl_DrawIDARB`/`gl_BaseInstanceARB` plus MDI;
|
||||
- SSBO allocation and binding;
|
||||
- a timer query;
|
||||
- an sRGB color plus depth/stencil framebuffer;
|
||||
- persistent coherent mapping whenever buffer storage is advertised.
|
||||
|
||||
Unsupported hardware receives one actionable report and exit code 4. The
|
||||
Studio smoke defers native close until after `RenderStack.EndFrame`, so both
|
||||
successful and rejected startup release every owned context resource before
|
||||
the final report is atomically rewritten.
|
||||
|
||||
## Positive supported gate
|
||||
|
||||
Windows 11 Pro build 26200, AMD Radeon RX 9070 XT, driver
|
||||
`32.0.31021.5001`:
|
||||
|
||||
- GLFW `3.4.0 Win32 WGL`;
|
||||
- OpenGL `4.3.0 Core Profile Context 26.6.4.260624`;
|
||||
- 240 Hz monitor, 1280 x 720 logical/framebuffer smoke;
|
||||
- bindless, shader draw parameters, MDI, SSBO, timer query, sRGB
|
||||
depth/stencil, and persistent coherent storage all actively pass;
|
||||
- OpenAL Soft default device opens, accepts the 50 ms smoke wave, and disposes;
|
||||
- the 1280 x 720 retained-UI mockup screenshot is visually intact;
|
||||
- process exits 0 with zero owned window, GL, input, and audio resources and
|
||||
`ShutdownComplete=true`.
|
||||
|
||||
## Linux backend and negative-capability gates
|
||||
|
||||
Package: exact framework-dependent `linux-x64` publish of
|
||||
`11501d52cad942850d88f83490710faf1d5cdf28`.
|
||||
|
||||
Host: Ubuntu 24.04.3 LTS under WSL2 kernel
|
||||
`6.6.87.2-microsoft-standard-WSL2`, WSLg X11 and Wayland endpoints.
|
||||
|
||||
Both explicit backends create an OpenGL 4.5 core context, expose one keyboard
|
||||
and one mouse, capture their framebuffer/monitor facts, and identify the
|
||||
packaged multi-backend GLFW 3.4:
|
||||
|
||||
| Protocol | Monitor | Renderer | Result |
|
||||
|---|---|---|---|
|
||||
| X11 | `XWAYLAND0`, 60 Hz | Mesa llvmpipe 25.2.8 | exit 4: bindless absent |
|
||||
| Wayland | `weston rdp`, 60 Hz | Mesa llvmpipe 25.2.8 | exit 4: bindless absent |
|
||||
| X11 + `GALLIUM_DRIVER=d3d12` | `XWAYLAND0`, 60 Hz | D3D12 (AMD Radeon RX 9070 XT), GL 4.6 | exit 4: bindless absent |
|
||||
|
||||
Each final report names only `GL_ARB_bindless_texture` as the mandatory
|
||||
missing feature, preserves the complete capability record, and reports zero
|
||||
window/GL/input/audio ownership with `ShutdownComplete=true`. This is the
|
||||
intended mandatory-modern-renderer failure, not an accepted Linux driver row.
|
||||
|
||||
The Ubuntu graphical CI job now builds/publishes the App, runs the focused
|
||||
platform/capability tests, checks the native package closure, and verifies the
|
||||
same actionable X11 software-driver rejection under Xvfb.
|
||||
|
||||
## Automated gates
|
||||
|
||||
- graphical backend/capability/Studio focused tests: 29/29;
|
||||
- App Release tests: 3,763 passed / 3 skipped;
|
||||
- complete Release solution: 8,826 passed / 5 skipped;
|
||||
- Release solution build: zero warnings and zero errors;
|
||||
- Windows supported smoke: exit 0, screenshot present, all function probes
|
||||
pass, audio playback submitted, all terminal ledgers zero;
|
||||
- WSLg X11 and Wayland negative gates: exit 4, exact bindless diagnostic,
|
||||
all terminal ledgers zero;
|
||||
- concurrent two-account Linux headless process remained 2/2 in-world with
|
||||
zero faults/reconnects/resource-envelope violations throughout the gates.
|
||||
|
||||
## Deferred L1 acceptance
|
||||
|
||||
Do not claim Linux graphical support from WSLg. L1 still requires at least one
|
||||
physical supported Linux row and the committed driver matrix:
|
||||
|
||||
- AMD Mesa/RadeonSI X11 and Wayland;
|
||||
- NVIDIA proprietary X11 and supported Wayland;
|
||||
- Intel only when every mandatory capability is present.
|
||||
|
||||
On each supported row, rerun the packaged screenshot/input/audio/teardown
|
||||
smoke. Only then close L1 and begin the connected L2 route. This work and
|
||||
Slices L2–L6 were explicitly parked by the user on 2026-07-27.
|
||||
|
||||
## Rollback
|
||||
|
||||
```text
|
||||
git revert 11501d52cad942850d88f83490710faf1d5cdf28
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue