acdream/docs/superpowers/specs
Erik dcae2b6b94 phase(N.5): retirement amendment — InstancedMeshRenderer + StaticMeshRenderer + WbFoundationFlag deleted
Final cross-cutting review of N.5 found that Task 15's deletion of
mesh_instanced.vert/.frag left InstancedMeshRenderer orphaned —
ACDREAM_USE_WB_FOUNDATION=0 silently rendered terrain+sky only with
no entities. The SHIP commit's "[x] ACDREAM_USE_WB_FOUNDATION=0 still
works" claim was inaccurate.

Resolution: formal retirement of the legacy renderer path within N.5
instead of deferring to N.6.

Deleted:
- src/AcDream.App/Rendering/InstancedMeshRenderer.cs
- src/AcDream.App/Rendering/StaticMeshRenderer.cs
- src/AcDream.App/Rendering/Wb/WbFoundationFlag.cs

GameWindow simplified — capability detection is unconditional, missing
bindless throws NotSupportedException with a clear message at startup.
WbDrawDispatcher + mesh_modern shader load are mandatory after init.
No escape hatch.

GpuWorldState simplified — WbFoundationFlag.IsEnabled guards on
AddLandblock/RemoveLandblock removed; adapter calls are unconditional
when the adapter is non-null.

PendingSpawnIntegrationTests updated — WbFoundationFlag.ForTestsOnly_ForceEnable
static ctor removed (flag is gone; adapter calls are unconditional).

The ApplyLoadedTerrain physics-data loop was also simplified: the
EnsureUploaded sub-loop that fed InstancedMeshRenderer is gone;
_pendingCellMeshes is now explicitly cleared to prevent unbounded
accumulation (the worker thread still populates it, but WB handles
EnvCell geometry through its own pipeline).

Spec §2 Decision 5 + §10 Out-of-Scope updated. Plan ship-amendment
section added. Roadmap updated (N.5 ships with retirement; N.6 scope
narrowed to perf-only). CLAUDE.md "WB integration cribs" updated.
Perf baseline doc updated. WbDrawDispatcher class summary docstring
corrected to describe the as-shipped SSBO + multi-draw-indirect path.
ISSUES.md #51 updated (terrain not in N.5 scope; deferred to N.7).

Bindless support is now a hard requirement. Modern desktop GPUs
universally expose GL_ARB_bindless_texture + GL_ARB_shader_draw_parameters;
if a user hits the NotSupportedException, that's a real bug report
worth investigating, not a silent fallback.

Build: 0 errors, 0 warnings. Tests: 71/71 (Wb+MatrixComposition+TextureCacheBindless filter).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 22:01:36 +02:00
..
2026-04-11-foundation-phase-design.md docs: refresh strategic roadmap + Foundation phase design spec 2026-04-11 21:43:33 +02:00
2026-04-12-b3-complete-movement-design.md docs(specs): Phase B.3 Complete — movement and world navigation design 2026-04-12 15:54:12 +02:00
2026-04-12-physics-collision-engine-design.md docs(specs): Phase B.3 — physics collision engine design 2026-04-12 09:42:31 +02:00
2026-04-12-player-movement-design.md docs(specs): Phase B.2 — player movement mode design 2026-04-12 14:05:07 +02:00
2026-04-13-movement-completion-design.md docs: movement completion design spec (B.2/B.3) 2026-04-13 23:01:18 +02:00
2026-05-02-l3-remote-entity-motion-design.md docs(spec): Phase L.3 scope revision — combine L.3.1+L.3.2 2026-05-03 10:03:09 +02:00
2026-05-08-phase-n-worldbuilder-migration-design.md spec(rendering): Phase N WorldBuilder migration design + N.1 scenery 2026-05-08 08:47:23 +02:00
2026-05-08-phase-n1-scenery-via-wb-helpers-design.md spec(rendering): Phase N WorldBuilder migration design + N.1 scenery 2026-05-08 08:47:23 +02:00
2026-05-08-phase-n4-rendering-foundation-design.md spec(N.4): rendering pipeline foundation design 2026-05-08 12:47:49 +02:00
2026-05-08-phase-n5-modern-rendering-design.md phase(N.5): retirement amendment — InstancedMeshRenderer + StaticMeshRenderer + WbFoundationFlag deleted 2026-05-08 22:01:36 +02:00