docs: point canonical state at Campaign N; record Campaign V closed

CLAUDE.md''s read-first list and the roadmap header now carry Campaign N
(retail reliable-transport port) as the active campaign and Campaign V
as the closed record.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-29 10:32:41 +02:00
parent b63d41b4e0
commit 9ed43e27df
2 changed files with 21 additions and 26 deletions

View file

@ -14,31 +14,25 @@ correctly report that Mesa D3D12/llvmpipe lacks mandatory bindless textures.
A supported physical Linux AMD/NVIDIA driver row remains the first gate when
Slice L resumes; the physical gate and L2L6 are deferred.
**Campaign V — OpenGL → Vulkan (active, started 2026-07-27):** the renderer
migrates to a single Vulkan 1.3 backend on Windows x64 and Linux x64, and the
OpenGL backend is deleted at the end. The plan is
[`2026-07-27-vulkan-campaign.md`](2026-07-27-vulkan-campaign.md). Motivation is
compatibility and efficiency, not rescue: mandatory `GL_ARB_bindless_texture` is
the exact floor that parked Slice L (Mesa D3D12/llvmpipe lack it), while Vulkan's
descriptor indexing is core, and per-frame data can be written straight into
mapped memory instead of copied through `BufferSubData`. Method follows the
I5→I6→I7 precedent: a Vulkan-shaped RHI implemented **first on GL** so each of the
twelve renderers ports one at a time under a strict pixel gate on the still-
shipping backend, then a Vulkan implementation of the same contract, a
GL-versus-Vulkan differential, a perf gate, cutover, and deletion. Slices V0V11.
V0 pinned the contract (`src/AcDream.App/Rendering/Gpu/`, `RecordingGpuDevice`,
55 contract tests). The ImGui developer stack and UI Studio are **not** ported and
are deleted at V11; re-homing the dev panels onto the retained UI is a tracked
follow-up. Targets versus the GL baseline (520 FPS, CPU/GPU p50 1.869/1.096 ms,
652 MiB working set): CPU p50 ≤ 1.60 ms, GPU p50 ≤ 1.00 ms, working set
≤ 600 MiB, 0 B/frame managed allocation — with parity on all four as the cutover
floor. Shipped so far: V0V2, V4a, V4b, V5, V6aV6f. V4c/V4d were reverted and
their GL re-land is closed — an AMD GL driver defect, established by a
cross-vendor 10/10 on NVIDIA — so their content returns as the Vulkan world path
(plan §5.5.5§5.5.6). V6f made every production shader Vulkan-expressible and
then measured that world path: it is blocked behind a Vulkan composition host,
three validation-layer defects, and V4t's texture stack, all recorded with
evidence in plan §5.5.7.
**Campaign V — OpenGL → Vulkan (CLOSED 2026-07-29):** the renderer now runs a
single Vulkan 1.3 backend on Windows x64 and Linux x64; the OpenGL backend,
ImGui developer stack, and UI Studio are deleted. The completed record —
contract, V0V11 slices, gates, the AMD GL driver defect saga, and the
falsification ledger — is [`2026-07-27-vulkan-campaign.md`](2026-07-27-vulkan-campaign.md).
The user signed the V10 cutover; V11 deleted GL (27,670 lines) and all
deferred reruns pass on the GL-free tree.
**Campaign N — retail reliable network transport (ACTIVE, started
2026-07-29):** the #260 live-server wedge root-caused to missing packet-loss
recovery in both directions (no outbound retransmission; inbound ISAAC burned
in arrival order) — acdream could not survive a single lost UDP packet, and
loopback gates were structurally blind to it. The campaign ports retail's
mechanism from the named decomp (SentPacketStore resend with reused ISAAC
keys, the inbound pre-drawn-key NAK set, the 2.0 s cumulative-ack / 0.6 s NAK
shared-gate sweep) under the ACE constraint table Coldeve enforces. Slices
N0N6 with a permanent loss-injection gate at N5 and a user Coldeve
endurance session as final acceptance. The plan is
[`2026-07-29-network-transport-campaign.md`](2026-07-29-network-transport-campaign.md).
---