docs(linux): close Slice L0
This commit is contained in:
parent
66f114b258
commit
07bb1c5a74
9 changed files with 264 additions and 14 deletions
65
memory/project_linux_graphical.md
Normal file
65
memory/project_linux_graphical.md
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# Modern Runtime Linux graphical continuation
|
||||
|
||||
## Current checkpoint
|
||||
|
||||
Slice L0 completed at
|
||||
`66f114b258c0c37b51a7c0e04ca0d6441f4b1699`.
|
||||
|
||||
The same `AcDream.App` now builds and publishes for `linux-x64`; there is no
|
||||
Linux gameplay or renderer fork.
|
||||
|
||||
Canonical seams:
|
||||
|
||||
- `AcDream.Runtime.Platform.ApplicationPathSet` owns XDG/Windows config, data,
|
||||
cache, plugin, screenshot, and diagnostic paths for graphical and headless
|
||||
hosts.
|
||||
- `AcDream.App.Platform.GraphicalHostPlatformServices` owns one startup OS,
|
||||
architecture, RID, native-dependency manifest, path set, and pacing factory.
|
||||
- `PlatformFramePacingWaiterFactory` selects the existing Windows
|
||||
high-resolution waitable timer or Linux
|
||||
`LinuxMonotonicFramePacingWaiter`.
|
||||
- Linux waiting uses absolute `CLOCK_MONOTONIC` +
|
||||
`clock_nanosleep(TIMER_ABSTIME)`, retries `EINTR`, does not busy-spin, and
|
||||
rejects use after disposal.
|
||||
- Windows legacy `%LOCALAPPDATA%\acdream\settings.json` and
|
||||
`keybinds.json` are copied only when the new roaming destination is absent.
|
||||
- bundled plugins are read beside the binary; user plugins are read from the
|
||||
portable data root. A successful bundled ID wins; a failed load does not
|
||||
reserve the ID.
|
||||
|
||||
Exact L0 evidence:
|
||||
|
||||
- Windows: Runtime 415, Headless 67, UI 543, App 3,736 / 3 skips, complete
|
||||
Release 8,799 / 5 skips.
|
||||
- native Ubuntu/WSL: Runtime 415, Headless 67, UI 543, 14 L0 App tests.
|
||||
- exact framework-dependent `linux-x64` publish contains executable, managed
|
||||
closure, GLFW, OpenAL Soft, cimgui, shaders, and smoke plugin/manifest;
|
||||
direct `ldd` has no unresolved dependency.
|
||||
- closeout:
|
||||
`docs/research/2026-07-27-slice-l0-platform-services.md`.
|
||||
|
||||
Rollback:
|
||||
|
||||
```text
|
||||
git revert 66f114b258c0c37b51a7c0e04ca0d6441f4b1699
|
||||
```
|
||||
|
||||
## Next work — L1
|
||||
|
||||
Do not claim Linux graphical support merely from publish success. L1 must:
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue