acdream/tests/AcDream.Core.Tests
Erik 75664805f8 feat(rendering): port retail one-pass detail material
Replace the building and EnvCell detail replay with retail's exact single-pass stage result, including authored surface opacity, squared detail alpha, final-alpha clipping, and the original subset pipeline/order. Arm the ordered walk command in place to close #471, delete the replay pipelines/shaders, and advance prepared content to recipe 9.

Mutation witnesses (each restored before commit):
- X=a*qA: RetailDetailTextureContractTests.BothShaderFamiliesUseTheSharedOnePassSourceAndDebugPrecedesDetailSample line 174, missing materialAlpha * detail.a * detail.a.
- X*=base alpha: same test line 175, forbidden baseTexel.a found.
- CLIP against base alpha: EnvCellAlphaDrawSourceTests.ClipShaders_UseGreaterEqualForThePerRangeReference line 260, final-X conditional missing.
- second detail draw: EnvCellAlphaDrawSourceTests.DetailOn_EveryEnvCellFamilyDrawsOnceInPlaceWithAuthoredOpacity line 105, Assert.Single saw 2 MDI calls.
- straight-alpha substitution: WalkStaticStreamPopulatorTests.ImmediateBuildingDetail_RetainsOriginalFramebufferFamily line 1244, Additive first failed (only wb-mesh-alpha-1x recorded; InvAlpha also failed).
- omit ordered arm: OrderPreservingSubmitterTests.PrepareThenDraw_OrdinaryBuildingClipBuildingOrdinary_ArmsOnePassInPlace line 305, expected (77,3.5), got (0,0).
- omit atmospheric combine: RetailDetailTextureContractTests.BothShaderFamiliesUseTheSharedOnePassSourceAndDebugPrecedesDetailSample line 173, atmospheric shared include missing.
- drop serialized opacity: ObjectMeshDataSerializerTests.SurfaceOpacity_RoundTripsBitExactlyAndDeterministically line 288, first reported 0.5 bits 1056964608 vs 1065353216.
- stale detail arm: ordered adjacency test line 307, expected following ordinary (0,0), got (77,3.5).
- per-frame surface map: EnvCellAlphaDrawSourceTests.ProductionWholeLeaf_WarmedScanSubmitRhiAndFilteredReplayDoNotAllocate line 178, expected 0 B, got 147456 B.

Verification before commit: shader compiler 23/23; focused App 213/213; Content 75/75; Core Wb 10/10; launcher migration 6/6; Release solution build 0 warnings / 0 errors; git diff --check clean.
2026-09-05 02:03:13 +02:00
..
Audio fix: complete retail parity stability pass 2026-08-28 20:01:39 +02:00
CharGen fix(chargen): Campaign CC gate round 1 Batch G — real color wheel (DoColorSpots/DoGradDisk color rendering) 2026-08-16 14:16:14 +02:00
Chat fix: complete retail parity stability pass 2026-08-28 20:01:39 +02:00
Combat fix(combat): #298 — admit player targets to melee/missile attack and the camera 2026-08-03 21:29:15 +02:00
Conformance fix(content): S1 review round - retail default sides shape, mask hoist, upload order 2026-09-02 19:37:25 +02:00
Fixtures fix(physics): enforce retail step-down support radius (#273) 2026-07-31 12:10:03 +02:00
Input fix(client): restore retail interaction parity 2026-08-26 20:45:11 +02:00
Items feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
Journal feat(journal): QJ1/QJ2 — the journal's pages and their file 2026-08-21 15:31:47 +02:00
Lighting checkpoint(render): preserve pre-overhaul investigation state 2026-09-01 18:04:24 +02:00
Meshing fix(content): S1 review round - retail default sides shape, mask hoist, upload order 2026-09-02 19:37:25 +02:00
Physics docs(render): AD-117 item 1 retired — the render-only destination-cell move is retail's own zero-sphere find_cell_list 2026-09-03 01:18:50 +02:00
Player feat(ui) Campaign CA CA4 #431: server-authoritative raises — the optimistic layer is deleted 2026-08-24 13:56:31 +02:00
Plugins feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
Properties build: make release restore reproducible 2026-08-18 10:29:00 +02:00
Quests feat(journal): QJ3/QJ4/QJ5 — both remaining tabs are live 2026-08-21 15:42:05 +02:00
Rendering feat(rendering): port retail one-pass detail material 2026-09-05 02:03:13 +02:00
Selection refactor(net): converge live session state reset 2026-07-21 12:00:48 +02:00
Social refactor(net): converge live session state reset 2026-07-21 12:00:48 +02:00
Spells fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
Streaming test: observe landblock worker joins 2026-08-18 13:03:30 +02:00
Terrain feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
Textures fix(ui): Campaign LA gate round 2 — character-select screen media resolution 2026-08-15 09:12:10 +02:00
Ui feat(chat): port retail client command families 2026-07-13 14:50:15 +02:00
Vfx feat(overhaul): port S5 particle cell visibility 2026-09-04 17:09:51 +02:00
World fix(render): harden portal exit handoff 2026-08-25 17:39:44 +02:00
AcDream.Core.Tests.csproj build: make release restore reproducible 2026-08-18 10:29:00 +02:00
GlobalUsings.cs refactor(runtime): own local movement and outbound cadence 2026-07-26 12:33:53 +02:00
packages.neutral.lock.json build: make release restore reproducible 2026-08-18 10:29:00 +02:00
xunit.runner.json test: fix PhysicsResolveCapture/PhysicsDiagnostics static-leak isolation 2026-06-02 15:20:24 +02:00