Files
EscapistsReintroduced/docs/private-pointer-edge-audit.md
T

3.8 KiB
Raw Blame History

Relative pointer edge audit (read-only)

Recommend the explicit wider private headless viewport experiment, retaining all existing pointer, focus, process, prefix and socket guards. Do not add a root-edge exception or pointer warp based on this audit.

Evidence from the failed route

/tmp/erri-game-profile/logs/logs_2026-09-19_19-01-19/input-proof.json recorded nine successful+128px requests (1152px total), then refused the next request with Relative pointer step leaves owned clipped bounds. Native yaw advanced from−0.0231° to86.2074°, with per-step changes8.5586–10.3915°. No W event occurred. Individual pointer coordinates were not recorded, so neither the exact cursor X nor a clipping position is established by the report. In particular, the next event was not sent: this run says nothing about raw motion delivery at a root edge.

The same session's display-ownership.json proves game window29360129, exact same game PID400949 by window property and XRes, mapped InputOutput, existing focus on that window, geometry0,0–1280,720 and private root1019 with the same1280×720 bounds. No root-area gap appeared in that read-only observation. Per-event guards repeated ownership/focus/geometry checks.

XTest evidence and limits

Installed packages: xorg-xwayland24.1.13-1, libxtst1.2.5-1, gamescope3.16.28-1. Installed /usr/share/man/man3/XTestQueryExtension.3.gz describes relative pointer offset simulation. It does not establish that unbounded requested deltas remain available to an XInput raw-motion consumer after cursor confinement/clipping. Its relative-motion synopsis includes an obsolete screen argument; installed /usr/include/X11/extensions/XTest.h:77 is the correct four-argument ABI already used by the helper (Display*,int,int,unsigned long). This documentation must not justify changing the established ctypes signature.

No installed Xwayland/libXtst implementation source was found in /usr/src/debug, and the version-matched upstream Xserver source URL was not accessible through the browsing tool. Thus this audit has no source-backed conclusion about raw relative motion at the root edge. A future raw-motion experiment would require separate supported implementation evidence and explicit qualification; it is unnecessary for the current wider-viewport option.

Wider private viewport

The version-matched official Gamescope3.16.28 README documents -w/-h as the game's virtual resolution and -W/-H as compositor output dimensions. Selecting both widths2560 while keeping both heights720 is supported. Retain headless backend, exact child launch,30Hz cap, and existing owned-session cleanup.

The private profile's profile/.save/app1874880_user76561198020202999/settings/ReforgerEngineSettings.conf has only WindowPosX0 and WindowPosY0 under VideoUserSettings; no saved resolution/fullscreen override is present. ReforgerGameSettings.conf has no matching resolution fields. Existing native console reports backbuffer1280×720 and the sole monitor1280×720. Therefore no inspected saved setting demonstrably prevents following the wider virtual monitor, but 2560×720 native game/window behavior remains untested.

Use the next session's actual ownership report and renderer line to confirm the requested wider game window/root before claiming added pointer room. Keep current and projected pointer positions inside the exact owned focused clipped rectangle for every event. If the game remains smaller, or the pointer still lacks room, the unchanged guard should refuse; never fall back to a different display, move focus, warp, alter game input settings, or relax an edge bound. Larger dimensions are runtime test configuration, not performance evidence; same-run native yaw calibration remains mandatory because sensitivity is not guaranteed to be resolution independent.