LifePlay-Revival/Docs/Migration/etat/OPT/OPT0/OPT0-PIPELINE.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

8 KiB
Raw Blame History

OPT0-PIPELINE : organisation du pipeline de mesure et de test (axe B, par paliers)

2026-10-15, session Sonnet · OPT0-R, fiche K0. Décision de l'utilisateur pour l'axe B : par paliers, d'abord le banc console + CSV, puis un essai Gauntlet. Source des faits : OPT\BC\ (ids cités). Ce document organise ; il ne livre aucun outil installé ni essai.

Révision du 2026-10-15 (lot PIPE1, fiche PIPE1-IMPL-02) : paliers réalignés sur le barème M0 à M4 adopté par l'utilisateur (« approuve le modèle de xHigh »). Le choix du palier se fait par la grille question × enjeu du skill lp-perf (bareme.md) ; preuves dans etat\AG\PIPE1\PIPE1-REVUE-02-MODELE.md. L'ancien P1 (PresentMon en direct) devient M2 hors ligne ; P2a devient M1 ; P2b (Gauntlet) passe hors grille ; P3 (Tracy) est retiré.

Vue d'ensemble

Palier Outil Mesure Build Statut en 5.8 BUILD-GO
M0 Tools\LogStats.ps1 -Compare -Stats compteurs du jeu : F5, DESTROY, à-coups (-LPHitchLog) Development en service non, si la build existe
M1 CSV Profiler par le lanceur Session C, SummarizeDebugCsv.ps1, PerfReportTool (R4-01 à R4-04, R11-08 à R11-10) cadence instrumentée, coût par fil, mémoire LLM Development éprouvé en 5.5, à éprouver en 5.8 oui si la build Development est à refaire
M2 trace ETW hors ligne puis PresentMon --etl_file (R11-01 à R11-06) cadence ressentie de la Shipping Shipping jamais essayé (B2-ter) non (la build existe)
M3 journal de performance d'AMD Adrenalin cadence (grain à relever) toutes format inconnu non
M4 Unreal Insights : lanceur Session A, export sans interface (R11-11, R4-05 et suivantes) quelle fonction, quel Blueprint DebugGame ou Development éprouvé en 5.5, à éprouver en 5.8 oui si la build est à refaire
hors grille Gauntlet (R3-12, R3-101, R11-17, R11-18) lancer, jouer et juger sans humain Development à éprouver après M1 oui (BuildCookRun)

Pas de build Test : le moteur du lanceur ne l'installe pas (BaseEngine.ini:4002-4007, relevé dans PIPE1-REVUE-02.md F2). Tracy est retiré : Insights (M4) couvre les fonctions.

Règles communes

  • Le palier se choisit par la grille de bareme.md (skill lp-perf) ; la fiche porte la ligne Mesure : … avant tout lancement.
  • Verdict = nombres comparés à la base (bareme.md R8) : pour M0, M1 et M4 (Development), référence O0 (5.5 : médiane 16,7 ms, 159 images > 50 ms, 112 > 100 ms ; critère médiane ≤ 17 ms ± 1, Docs\18_Build_Debug.md:86-87, :128), rebasée sur O0-5.8 après l'épreuve de M1 ; pour M2 et M3 (Shipping), base Shipping de l'alpha établie par l'épreuve de M2, sans laquelle le verdict est « non jugé ». Jamais de comparaison entre les deux. Aucun seuil n'est inventé ici.
  • Résultats rangés sous D:\Game\LifePlay-master 5.8\Docs\Migration\etat\<projet>\<lot>\ ; jamais dans .hyperai\work\.
  • Aucune installation par un agent : le téléchargement des outils tiers est un geste de l'utilisateur, avec relevé du MD5.
  • Un palier rodé est lancé par la session (script, sortie d'une ligne par passe) ; un agent lp-perf seulement si le script manque ou échoue ; un agent qui juge est lp-validator (relit les nombres, ne modifie rien).
  • Rôle humain : jouer le scénario O0 (une partie par passe), ressenti (caméra, confort), décision, gestes de poste (session élevée, activation d'Adrenalin, téléchargements).

M0 : LogStats

Rubrique Contenu
Déclencheur non-régression des compteurs du jeu (grille : Q0, ou plancher E1)
Entrées LifePlay.log de deux parties Development (A et B), même scénario
Commandes Tools\LogStats.ps1 -Compare <A>,<B> -Stats
Sorties compteurs normalisés, section trame / F5 / DESTROY / hitch
Verdict écart des compteurs A/B ; à-coups seulement si la partie a été lancée avec -LPHitchLog
Rôle humain jouer la partie (souvent la même passe que M1)
Emplacement etat\OPT\<lot>\logstats\

M1 : CSV Profiler (lanceur Session C)

Rubrique Contenu
Déclencheur cadence instrumentée, coût par fil ou mémoire (Q1, Q3), plancher E2 et E3
Entrées build Development (Tools\BuildDebug.ps1 -Config Development), scénario O0
Commandes recette csvprofile.md : -csvGpuStats -llm -llmcsv -ExecCmds="csvprofile repeat=20, csvprofile frames=9000", sans -LPHitchLog, jamais -csvCaptureFrames
Sorties Saved\Profiling\CSV\*.csv, synthèse SummarizeDebugCsv.ps1, rapport PerfReportTool en option
Verdict médiane FrameTime, images > 50 et > 100 ms, GT ; contre la base O0
Rôle humain jouer le scénario O0, une partie par passe
Emplacement etat\OPT\<lot>\csv\

M2 : PresentMon hors ligne

Rubrique Contenu
Déclencheur cadence ressentie de la Shipping (Q2), plancher E3
Entrées build Shipping (alpha), version de PresentMon figée (2.6.0)
Commandes trace ETW par wpr ou logman (fournisseurs relevés dans le source de PresentMon 2.6.0), puis PresentMon --etl_file ; recette presentmon.md
Sorties CSV de PresentMon, synthèse Tools\PresentMonStats.py
Verdict percentiles 95 et 99 de MsBetweenPresents, images au-dessus du seuil de la base Shipping (sans base : « non jugé »), MsGPUBusy contre MsBetweenPresents
Rôle humain session élevée ; jouer le scénario
Réserve la capture en direct ne capte rien sur ce poste (0 image en 6 essais, OPT0-TACHES.md:203-218) ; la voie hors ligne n'est pas essayée et peut échouer pour la même cause. Repli : M3
Emplacement etat\OPT\<lot>\presentmon\

M3 : AMD Adrenalin

Repli de M2. Activation par l'utilisateur ; format et grain à relever sur un vrai fichier avant d'écrire une recette (OPT0-TACHES.md:217).

M4 : Unreal Insights

Rubrique Contenu
Déclencheur quelle fonction ou quel Blueprint coûte (Q4) ; montée depuis M1 (bareme.md R3)
Entrées build DebugGame ou Development ; passe courte (4 min au plus), à part de M1
Commandes canaux cpu,frame,bookmark,loadtime (sans memory), -statnamedevents, -tracefile ; export UnrealInsights.exe -OpenTraceFile=… -AutoQuit -NoUI -ExecOnAnalysisCompleteCmd="@=export.rsp" (TimingInsights.ExportTimerStatistics), bareme.md § 1.1
Sorties .utrace, export CSV des minuteurs d'un fil
Verdict minuteurs en tête du fil visé ; la trace fausse la cadence, ses temps d'image ne servent pas de verdict
Rôle humain jouer la passe courte
Réserve traces longues : 3,3 Go pour 10 min, plus de 50 Go de mémoire à l'analyse (Docs\11_Audit_Optimisation.md:280-281)
Emplacement etat\OPT\<lot>\insights\

Hors grille : Gauntlet (après l'épreuve de M1)

Rubrique Contenu
Déclencheur M1 stable ; décision de l'utilisateur de rejouer M1 sans humain
Entrées build empaquetée Development par BuildCookRun (tests compilés hors Test et Shipping, R11-17), nom de test
Commandes recette gauntlet.md
Sorties rapport JSON / HTML (-ReportExportPath, R3-02), code de sortie
Verdict code de sortie + comparaison des CSV de M1
Rôle humain décider la fin de l'essai ; lire les rapports de plantage
Agents lp-impl pour la SPEC et les réglages, lp-builder pour lancer
Emplacement etat\OPT\<lot>\gauntlet\
Réserve un éditeur hôte pilote le client (R11-18, estimé)

Pilotage par agent (axe B, hors paliers)

Le MCP de l'éditeur et Remote Control (R6) servent à piloter l'éditeur ; Remote Control est désactivé en build empaquetée et s'active par drapeaux. Les paliers M0 à M4 ne dépendent pas du MCP.

Suite

  1. Épreuve de M1 en 5.8 (fiche à part) : donne la base O0-5.8 et la dispersion du poste, d'où les seuils et le nombre de passes de X2.
  2. Épreuve de M4 en 5.8 (lanceur Session A, export sans interface).
  3. Épreuve de M2 (fiche B2-ter, accord de l'utilisateur) ; en cas d'échec, M3.
  4. Après l'épreuve de M1 seulement : décision sur Gauntlet.
  5. K1 : versement des enseignements dans les skills, soumis à l'utilisateur.