65 lines
2.7 KiB
Markdown
65 lines
2.7 KiB
Markdown
# 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.
|