P0 Tasks 6 (autonomous half) + 7. FindCellList_DoorwayThreshold_MatchesRetailTrace asserts acdream's pick == each captured retail pick; skips until the capture fixture lands. PvsConformanceTests scaffolds the render visible-set golden (skipped; filled in P4). ConformanceDats.FixturesDir resolves fixtures from the source tree (issue98 pattern). Notes record: existing retail traces are collision-only (no membership) so the strict P1 gate needs the one live capture; plus the P1 re-scope finding (Stage-1 membership already on this branch). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 lines
1.1 KiB
C#
24 lines
1.1 KiB
C#
using Xunit;
|
|
|
|
namespace AcDream.Core.Tests.Conformance;
|
|
|
|
/// <summary>
|
|
/// PVS (portal-visibility) conformance — P0 scaffold. The render visible-set
|
|
/// golden. Retail oracle: PView::ConstructView(CEnvCell*) @ 0x005a57b0
|
|
/// (pc:433750) produces the ordered cell_draw_list for a given (viewer_cell,
|
|
/// eye); see docs/research/2026-06-02-retail-render-pipeline-full-reference.md §3.
|
|
///
|
|
/// FILLED IN P4, not P0: a retail cell_draw_list trace is a P3/P4-coupled
|
|
/// capture (a new cdb script breakpointing PView::DrawCells / cell_draw_list,
|
|
/// sibling to find-cell-list-capture.cdb), and the PVS code itself
|
|
/// (PortalVisibilityBuilder) is REPLACED by the ConstructView port in P4. The
|
|
/// scaffold exists now so the structure + retail anchor are in place; P4 adds
|
|
/// the capture + the golden assertion (PVS root id == physics CurrCell.Id;
|
|
/// a cell seen through two portals appears once per slice; dungeon
|
|
/// outside_view==0).
|
|
/// </summary>
|
|
public class PvsConformanceTests
|
|
{
|
|
[Fact(Skip = "P0 scaffold — filled in P4 with a captured retail cell_draw_list trace")]
|
|
public void Pvs_CottageInterior_MatchesRetailCellDrawList() { }
|
|
}
|