docs: file #429 — periodic local-player run hitch; GC/pack exonerated, prediction-vs-ACE speed snap is the lead
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
133be4d1a8
commit
eb4544a031
1 changed files with 50 additions and 0 deletions
|
|
@ -24,6 +24,56 @@ What does NOT go here:
|
|||
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
|
||||
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
|
||||
|
||||
## #429 — Periodic hitch in the LOCAL player's own motion while running (~2-3 s cadence)
|
||||
|
||||
**Status:** OPEN
|
||||
**Severity:** MEDIUM (noticeable during ordinary play)
|
||||
**Filed:** 2026-08-23 (owner report during the night-sky session)
|
||||
**Component:** movement / prediction / server reconciliation
|
||||
|
||||
**Symptom:** every ~2-3 seconds while RUNNING forward, the player's own
|
||||
motion visibly hitches ("small lag, like spike"). Not present when walking
|
||||
or strafing. Birds and every other world object stay perfectly smooth
|
||||
through the hitch — so it is NOT a frame-time spike; it is the local
|
||||
player's position stepping.
|
||||
|
||||
**Evidence gathered at filing:**
|
||||
- 45 s `dotnet-counters` capture while reproducing (Atmospheric pack ON):
|
||||
Gen0 GC every ~6.3 s (cadence mismatch), gen1/gen2 zero, %time-in-GC ~0
|
||||
— GC exonerated for the 2-3 s cadence. (Separate finding: the pack path
|
||||
allocates a steady ~8 MB/s ≈ 130 KB/frame where the base client runs
|
||||
near zero — worth its own cleanup issue.)
|
||||
- Pack GPU-timer readback is non-blocking by design (VulkanGpuTimerPool
|
||||
tolerates NotReady) — not a stall source.
|
||||
- The owner initially observed "pack off → gone"; after the walk/strafe/
|
||||
world-smooth discriminators this is more plausibly a VISIBILITY effect
|
||||
(lower FPS with the pack makes a 2 s position snap read as a lag spike).
|
||||
|
||||
**Leading hypothesis:** client-predicted run speed vs ACE-authoritative
|
||||
speed mismatch at high runRate (the test character applies server stats
|
||||
run=15230 — deep in the ==800-sentinel family, see #266: retail's ==800 vs
|
||||
ACE's >=800 misread), accumulating drift that the AutoPos/correction loop
|
||||
snaps back on its cadence. Walking (speed 1.0 both sides) and strafing
|
||||
accumulate little or no drift — matching the report exactly.
|
||||
|
||||
**Next probes (in order):**
|
||||
1. `ACDREAM_DUMP_MOTION=1` + a temporary inbound-position log for the
|
||||
LOCAL guid: does ACE send position sets for the local player every
|
||||
~2-3 s while running, and does acdream apply them? (Retail ignores
|
||||
routine UpdatePosition for the autonomous local player; only
|
||||
ForcePosition snaps — verify our projection split here.)
|
||||
2. Compare `PlayerWeenie.InqRunRate(15230)` against ACE's computed
|
||||
runRate for the same skill — a formula delta is the root cause if the
|
||||
correction traffic confirms.
|
||||
3. If no corrections arrive: instrument the local movement controller's
|
||||
own periodic state (autorun latch, tracker send side-effects).
|
||||
|
||||
**START at** `claude-memory/project_physics_collision_digest.md` (per-cell
|
||||
DO-NOT-RETRY rules) and `claude-memory/project_retail_motion_outbound.md`
|
||||
(TS-33 AutoPos tracker semantics) before instrumenting.
|
||||
|
||||
---
|
||||
|
||||
## #428 — Sky lightning slot fired 3 CreateParticle hooks with no live pose after a TimeSync day-group flip
|
||||
|
||||
**Status:** OPEN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue