5.3 KiB
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_BaseInstanceARBplus 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
git revert 11501d52cad942850d88f83490710faf1d5cdf28