Repository navigation
Performance: 16-ms-Glättung per hochauflösendem Timer im A/B-Test - #4
quasistatic-setup wants to merge 33 commits into
Conversation
…nd safe WM_TIMER fallback
|
GitHub-Actions-Node-20-Annotation behoben: Praxismessung vom 27.10.2026, Log ab 14:37:44: |
|
Praxisprüfung MouseLookProbe am 27.10.2026, gekoppelte Logs
Zusätzlich ist |
Merge-Blocker aus Modus-B-Gegenprobe (27.10.2026, 14:54:01)Reale TeamViewer-Messung mit
Bewertung: Keine Freigabe für Merge von #3/#4. Die aktuelle Ankerlogik kann in Hidden-aber-No-Warp-Modus die Maus faktisch vollständig blockieren. Vor Merge einen belastbaren externen Nachweis von tatsächlichem Game-Warp und fail-open bei fehlendem Warp entwickeln, statt reine Positionsruhe/Onset-Sprünge als Beweis zu behandeln. Bestehende Hook-/Emergency-Off-/Zielprozessgrenzen unverändert. Der schnellere Timer selbst zeigt keinen Fehler und soll erhalten bleiben. Danach Probe A/B/C mit Fix ON/OFF und WoW erneut testen. Unverändert: Draft, nicht mergen. |
Nachbesserung zum Merge-Blocker „Probe B ohne Warp“ (27.10.2026)Der Hook greift nicht mehr allein bei verstecktem Cursor ein. Für das Unterdrücken fremdinjizierter Bewegung muss die State-Sampler-Logik nun pro versteckter Haltephase einen plausiblen Game-Warp aus mehrfachen unerklärten Rücksprüngen nachweisen (mindestens 2 Rücksprünge zum gleichen inneren Punkt, 5 verschiedene remote input updates, mindestens 60 px remote travel, 80 ms Zeitfenster). Eigene SendInput-Ausgaben sind als Beleg ausgeschlossen, inklusive 160-ms-Sperrzeit. Stabilität allein, das Verstecken selbst oder ein einzelner Onset-Sprung zählen nicht mehr. Ohne Beleg werden alle fremden Mausbewegungen durchgelassen; nach Hold-Ende/Moduswechsel/Fokusverlust gilt der Beleg nicht mehr. Bei >300 ms dauerhaftem off-anchor ohne eigene Ausgaben wird die Freigabe widerrufen und die Glättungswarteschlange verworfen (fail-open). MSVC-/CTest-Fälle decken B mit normaler Bewegung, stillstehende/laggende Maus, manuelle Rückkehr zum selben Ort, Randposition, eigene SendInput-Ausgabe, Modus-/Hold-Reset und C-artige unbeobachtete Positionsrücksprünge ab. Die alte fehlerhafte Stille-basierte Ankervergabe wurde aus dem Laufzeitcode entfernt. Der schnelle 16-ms-Timer bleibt bestehen; im gestapelten PR #4 ist er auch in Wichtig: Das ist eine konservative Heuristik aus extern beobachtbaren Daten, keine technische Benachrichtigung von Win32 über SetCursorPos im Spiel. Damit kann eine echte Rücksetzung übersehen werden: dann bleibt die Korrektur bewusst aus. PR #3 und #4 sind weiter DRAFT. Vor Merge: realer TeamViewer-Probe-Test B ON (keine |
|
Aktueller kombinierter Head |
|
Neuer Merge-Blocker: subjektiv deutlich schlechtere WoW-Kamera, auch einzelne Klicks lösen Sprünge aus (Praxistest 27.10.2026, 15:20:03). Belegte Daten aus vier neuen Logdateien:
Konsequenz: PRs #3/#4 weiterhin DRAFT und NICHT MERGEN. Die automatische |
|
Geschlossen zugunsten von PR #5, der den vom Betreiber praktisch bestätigten stabilen WoW-Stand mit High-Res-Timer exakt als Commit |
Ausgangspunkt
Im WoW-A/B-Log betrug die gemessene mittlere Anzahl von Timer-Ticks ca. 27,1 ms pro Tick, obwohl
SetTimer(...,16)angefordert war. Mit der Glättungsgrenze 20 px/Tick entstehen lange Rückstände bei größeren TeamViewer-Eingaben.Änderung
high_res_smoothing_timer. Inconfig-ab-test.jsonzunächsttrue;Start-Playing.cmdbleibt beim bisherigenWM_TIMER.SendInputund die Korrektur bleiben ausschließlich auf dem Hauptthread. Kein Eingriff in den globalen Timer.WM_TIMERmit Warnung. Bei Fehler während des Betriebs wird sicher beendet, statt unbemerkt die Eingaben zurückzuhalten.## SMOOTH TIMER source=...im Log ermöglicht eindeutige A/B-Zuordnung; bestehende## TIMING-Felder weiter verfügbar.Abnahme
## TIMINGliefert deutlich kürzere Intervalle ohne erhöhte Queue-Drops oder Watchdogshigh_res_smoothing_timer=falsereproduzierbare alteWM_TIMER-VarianteCtrl+Alt+Cwirksam; OFF/Relative, Fokusverlust, Probe A/B/C fehlerfreiown == applied,output_failures=0,dropped=0Abhängigkeiten
Stacked Draft-PR: #2 (INI, Probe, Zeitdiagnose) → #3 (sichere Ankerneuerkennung) → dieser PR. Die Builds sind automatisierbar; der geforderte praktische Windows-/TeamViewer-Test ist nicht durch CI ersetzbar. Nicht vor dessen Abschluss mergen.
Praxistest 27.10.2026 – Timervergleich WoW über TeamViewer
high_res_smoothing_timer=truefühlt sich deutlich besser an alsfalse.high-res-waitable): 100 TIMING-Fenster, 1604 Ticks in insgesamt 26064 ms => 16,25 ms pro Tick (61,6/s), größter gap 25 ms, größter pending_age 500 ms,applied=603,own=603, Queue-Drops 0, Watchdog 0.wm-timer): 79 TIMING-Fenster, 777 Ticks in 20768 ms => 26,73 ms/Tick (37,4/s), größter gap 45 ms, größter pending_age 1032 ms,applied=447,own=447, Queue-Drops 0, Watchdog 0.Nachbesserung gegen falsch positiven Eigenbewegungs-Anker (27.10.2026)
SendInput-Schrittgröße) war ein Fehlkandidat aus den eigenen Mausausgaben.SendInput-Ziel (±2 px) mehr als Ankersamples an. Nach jedem eigenen Ausgabeereignis wird die aktuelle Konsens-Sammlung zurückgesetzt; für die folgenden 160 ms werden keine Kandidaten gesammelt.