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.
|
- 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.
|
- 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
|
## #428 — Sky lightning slot fired 3 CreateParticle hooks with no live pose after a TimeSync day-group flip
|
||||||
|
|
||||||
**Status:** OPEN
|
**Status:** OPEN
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue