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

34 lines
3.6 KiB
Markdown

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.