LifePlay-Revival/Docs/Migration/etat/ST/STE/fiches/STE-H7.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

3.6 KiB

Fiche STE-H7 — Niveau N3 — Modèle prévu (modèle de l'agent lp-cart) | utilisé <modèle déclaré> — Agent lp-cart (DIAG, lecture seule) — Skills lp-commandlets (lecture), sk-protocol

1 Objectif : établir quels assets sont chargés de façon synchrone (FlushAsyncLoading) à l'apparition des PNJ (SPAWN) et pourquoi : 46 trames SPAWN ≥ 50 ms dont 38 avec FlushAsyncLoading, plus 21 trames FlushAsyncLoading seul (≈ 10 s sur 324 s) dans la mesure STE-H4 ; 422 FlushAsyncLoading en tout ; proposer des correctifs comparés (préchargement, chargement asynchrone, cache des maillages / vêtements / matériaux déjà chargés), sans trancher. Lot STE, registre STE-TACHES.md, ligne STE-H7. 2 Complexité : a1 b2 c2 d1 e1 f2 = 9 → N3 (aucun) 2b Agent : lp-cart — à invoquer : lp-commandlets (lecture des dumps, commandes de dump) — outils retirés : aucun 3 Contexte : copie D:\Game\LifePlay-master 5.8, HEAD 4283c13. Décision de l'utilisateur (2026-10-11) : instruire H7 et H8 (« les deux »). Livrables amont : STE-H4-MESURE.md, STE-H4-DIAG.md (§ 3.4 : SPAWN, FAL), STE-H2b-DIAG.md (SPAWN, LoadPreset, LoadMeshIfNeeded, mannequins recyclés). Journal de mesure (copie de lecture) : %USERPROFILE%\AppData\Local\Temp\claude\D--Game-LifePlay-master-5-8\37530d8d-c780-4a57-8fbd-bcb010aa6408\scratchpad\M-H4-LifePlay.log (lignes LogStreaming: Display: FlushAsyncLoading(<n>): <q> QueuedPackages, <a> AsyncPackages, index SPAWN) ; fichiers D:\Game\LifePlay_Build_5.8_STE-J5_Development\Windows\LifePlay\Saved\Profiling\AsyncLoadRequests_*.log et CSV Profiling\CSV\Profile(20261011_012223).csv / (…012509) (colonne EVENTS : FlushAsyncLoading##<t> ; en-tête en fin de fichier ; script scratchpad\mesure_h4.py). Dumps : dumps\GI__SpawnDummy_D4.txt, GI__LoadMeshIfNeeded_D4.txt, GI__CheckCbeGenderModel_D4.txt, GI__LoadPreset.txt, Person__EventGraph_D4.txt, GI__EventGraph_V5.txt. Source C++ : Source\LifePlay (chargeurs de mods, LoadObject / StaticLoadObject / LoadSynchronous éventuels). 4 Questions :

  • Q-a : quels nœuds ou fonctions C++ déclenchent les FlushAsyncLoading au SPAWN (LoadObject, Load Asset Blocking, SetSkinnedAssetAndUpdate sur un asset non chargé, vêtements, matériaux, morphs, LoadPreset) ; quels paquets (si le journal ou les AsyncLoadRequests les nomment) ;
  • Q-b : coût par SPAWN (durée des trames, nombre de FAL par SPAWN), premiers SPAWN vs suivants (cache), 21 FAL hors SPAWN ;
  • Q-c : correctifs comparés (précharger au chargement de la carte, AsyncLoadAsset, garder une référence aux assets déjà chargés), nœuds ou fichiers C++ nommés, effet attendu, effet mémoire, risque ;
  • Dumps manquants : commande exacte .\Tools\RunCommandlet.ps1 -Lot STE-D9 -Commandlet LPDumpFunction -Args '-BP=<BP> -Fn=<Fn> -Pins -Exec' ; s'arrêter sur ce point, pas de commandlet. 5 Pièges : « établi » / « estimé » partout ; une trame SPAWN longue n'est pas forcément due au FAL (le prouver par l'horodatage des lignes dans la trame) ; -llmcsv a perturbé une partie de la mesure ; ne pas modifier Source. 6 Interdits : aucune écriture hors du livrable ; pas d'éditeur, de commandlet, de build ni de jeu ; aucun commit ; aucune écriture dans Content ni Source (+ sk-protocol § 2). 7 Livrable : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-H7-DIAG.md au gabarit DIAG (questions Q-H7-n), en LF. 8 Critère d'acceptation : Q-a et Q-b répondues avec preuves (ou dumps manquants exacts) ; au moins deux correctifs décrits. 9 Budget et arrêt : ≈ 60 tours, pic ≤ 250 k, ≈ 40 min.