acdream/docs/research/2026-08-13-display-block-test-script.md
2026-08-13 17:29:28 +02:00

3.4 KiB
Raw Blame History

Display & resolution block — connected-gate test script

Status: slices D1 (#389 FOV) and D2 (#391 curated list) are LANDED and testable now; D3 (#390 UI reposition) and D4D6 (fullscreen family #377/#376/#388) fill in as they land. Launch with ACDREAM_RETAIL_UI=1 against local ACE, Release build for anything you judge by feel or frame rate. The resize/display chain logs evidence permanently — after any step you can cross-check display: resolution pick, window: framebuffer resize event, and vulkan: swapchain recreated lines in the launch log.


§D1 — Widescreen FOV feel (#389, SmartboxFOV)

The world camera now uses retail's law: your horizontal view stays roughly constant (~84° at 16:9) and wide screens trim the vertical slice instead of bloating the sides. Your stored Field of View migrates 60 → 90 (the retail default) on first load.

  1. Just look at the world on your 16:9 window at your usual spot (Holtburg outdoors is ideal). Compared to yesterday: the view should feel slightly more "zoomed"/framed — retail's framing — rather than the old wide-angle look. If you have retail side-by-side, the framing should now match it at the same window shape.
  2. Resize the window across shapes (drag it narrow, then wide). The world must stay geometrically true at every shape — no squish, no stretch, circles stay circles (pre-#389, mid-session resizes distorted the world in chase mode; that bug is dead).
  3. F11 → Config → Field of View slider. It now means retail's gameFOV in degrees (10160, default 90) and applies LIVE as you drag — the world widens/narrows immediately, no restart. Defaults restores 90.
  4. Set it back to 90 when done (or click Defaults).

§D2 — Curated resolution list (#391)

  1. F11 → Config → Resolution dropdown. The list is now your monitor's real modes, modern widescreen only: no 800x600, no 1024x768, nothing your 2560x1440 desktop can't host (no 3840x2160 entry). Expect roughly: 1280x720 / 1366x768 / 1600x900 / 1920x1080 / 2560x1440 — exactly what your monitor reports, one entry per size.
  2. Pick a few. Every pick must land exactly (window resizes AND re-renders crisp — §the #387 chain), including 2560x1440.
  3. Click Defaults. The Resolution row restores 2560x1440 (your desktop's own mode — the deliberate replacement for retail's 800x600 default; register row IA-22), and the dropdown shows it selected.

§D3 — UI windows stay reachable on downscale (#390) — PENDING SLICE

(To be filled in when the retail reposition mechanism lands. The test shape will be: park panels near the right/bottom edges at 2560x1440, pick 1280x720, and confirm every window is still reachable per retail's rule.)

§D4§D6 — Fullscreen family (#377/#376/#388) — PENDING SLICES

(To be filled in when the fullscreen slices land. Will include: fullscreen on/off via the Config checkbox, resolution picks while fullscreen becoming REAL display-mode switches — [BLACK-SCREEN RISK] steps will be flagged: have Alt+F4 / the physical power of patience ready — and the #388 crash scenario surviving: a fullscreen-state settings apply must never take the client down.)


Carried context for the gate: the FPS cost of large windows is real physics (more pixels = more GPU work) — judge frame rate in Release only. The title bar shows live FPS.