# Campaign V slice V7: the connected route the GL-versus-Vulkan differential # runs TWICE, once per backend, pairing the PNGs by name. # # Two separate launches have to agree pixel-for-pixel, which is a much stricter # requirement than either connected route was written for. Everything below is # in service of that: # # * Every teleloc carries the identity quaternion, so the heading at each stop # is the same on both runs rather than whatever the previous heading was. # * The world clock is pinned by the client-only time-of-day override # (AcdreamCycleTimeOfDay cycles live -> 0.00 -> 0.25 -> 0.50, so three # presses land on noon). Without it the sky gradient, the sun angle and # every lit surface drift with wall time between the two launches, which is # the same effect that makes the offline gate mask its top 280 rows. # * Nothing moves the character. The only thing between arrival and capture is # a settle window, because a timed turn cannot be relied on to stop at the # same angle twice. # * There is no `checkpoint` verb here. The differential's verdict is the # paired PNG, and the ownership ledger has its own gate # (run-connected-world-lifecycle-gate.ps1) that this route does not duplicate. # # MSAA is forced OFF by the gate script rather than here, on BOTH launches. # Sample positions are not specified across implementations and cost 8.8% of the # frame at 4x -- measured, plan section 5.5.16 -- so a differential run with MSAA # on measures the two drivers' sample patterns and nothing else. # # Residual divergence this route cannot remove, and which is a finding rather # than a failure: PHASE. Two launches cannot agree on an emitter's age, a # creature's animation cursor, a portal's scrolling texture, or the cloud # sheet's position -- the cloud sheet in particular advances with WALL time and # not with the Dereth clock the override above pins, which is why the offline # pixel gate masks its own top 280 rows. The V6m smoke run measured the shape # of it at stop 1 with MSAA off: 18.52% of the frame differed, 89% of that in # the top 240 rows (cloud sheet, treeline, the portal), and rows 300-720 -- # terrain, blending, roads, buildings, character, entire retained UI -- # contributed about 9,500 pixels between them, almost all of it thin outlines # on silhouette edges. That is why every stop below is chosen for its static # content and why the settle windows are long. wait world-ready 90000 wait world-visible 30000 sleep 8000 input press AcdreamCycleTimeOfDay input press AcdreamCycleTimeOfDay input press AcdreamCycleTimeOfDay sleep 5000 # 1. Holtburg: the dense outdoor town. Terrain, terrain blending, the road # overlay, static world meshes, scenery and the whole retained UI in one # frame. This is the SMOKE stop -- the one pair -Smoke compares on its own. command /teleloc 0xA9B40019 84.0 7.1 94.005 1 0 0 0 wait materialized 1 90000 wait world-visible 30000 sleep 25000 screenshot holtburg_town 15000 # 2. Facility Hub: an interior EnvCell, and the durable fix for the campaign's # oldest coverage gap. Plan section 5.1 records that the offline gate sees no # EnvCell at all and that EnvCellRenderer's Vulkan arm is proven by one # eyes-on frame; this stop is the first automated instrument that looks at # one. Cell 0x164 is >= 0x100, which is what makes it indoor: walls, floor, # per-cell lighting and the doorway clip region rather than terrain. command /teleloc 0x8A020164 70.35 -40.66 -5.9 1 0 0 0 wait materialized 2 90000 wait world-visible 30000 sleep 25000 screenshot facility_hub_interior 15000 # 3. Aerlinthe: dense island geometry, the water edge and a long view. The # stop that exercises fog and the far end of the depth range, where a # precision divergence between the two backends would show first. command /teleloc 0x09040008 11.4 188.6 87.705 1 0 0 0 wait materialized 3 90000 wait world-visible 30000 sleep 25000 screenshot aerlinthe_island 15000 sleep 3000