10 KiB
10 KiB
BC-R11 : outils de mesure du pipeline (PresentMon, CapFrameX, CSV Profiler / PerfReportTool, Gauntlet, Tracy)
Date 2026-10-15, auteur Sonnet OPT0-R (fiche K0), 18 entrées : 12 établi, 2 estimé, 4 non vérifié. Pour un outil tiers, le README ou la page de release du dépôt officiel de l'outil compte comme source primaire (niveau établi pour l'outil) ; la compatibilité avec UE 5.8 ou une build Shipping reste « estimé » tant qu'aucun essai n'a eu lieu. Dates : les pages GitHub lues donnent jour et mois sans année ; lues le 2026-10-15.
| id | affirmation (1-2 phrases, sans copie de texte) | source (URL, date, version UE) | niveau (établi / estimé / non vérifié) | application à LifePlay (système ou fichier) | action proposée | skill de destination |
|---|---|---|---|---|---|---|
| R11-01 | PresentMon (Intel) est sous licence MIT ; c'est l'outil de mesure de présentation d'images (temps entre images, latence d'affichage) sur Windows, sans instrumentation du jeu. | https://github.com/GameTechDev/PresentMon / lue 2026-10-15 / hors moteur | établi | Palier 1 : mesure de la build empaquetée sans modifier le jeu. | Retenu pour le palier 1. | lp-perf |
| R11-02 | La dernière version stable est la 2.6.0 (21 septembre, année non affichée, page © 2026) ; la 2.5.0 est retirée pour un conflit de compatibilité, utiliser la 2.5.1 ou plus. Le README de l'application console cite la 2.3.1 en exemple. | https://github.com/GameTechDev/PresentMon/releases / lue 2026-10-15 / hors moteur | établi | Choix de version à figer avant le premier essai ; noms de fichiers de l'archive non confirmés (liste des assets non lue). | Noter la version et le MD5 au moment du téléchargement par l'utilisateur. | lp-perf |
| R11-03 | L'application console se pilote par options : cible (--process_name, --process_id), sortie (--output_file, --no_console_stats, --multi_csv), durée (--delay, --timed, --terminate_after_timed, --terminate_on_proc_exit), session (--session_name, --stop_existing_session, --terminate_existing_session), élévation (--restart_as_admin). | https://raw.githubusercontent.com/GameTechDev/PresentMon/main/README-ConsoleApplication.md / lue 2026-10-15 / hors moteur | établi | Recette presentmon.md : capture bornée dans le temps, arrêt à la fin du processus. | Vérifier chaque option avec l'aide de l'exécutable installé avant de la figer. | lp-perf |
| R11-04 | Le CSV contient notamment MsBetweenPresents, MsCPUBusy, MsGPUBusy, MsGPUTime, MsGPUWait, MsUntilDisplayed, DisplayedTime, PresentMode, AllowsTearing, DisplayLatency, CPUStartTime ; pas de colonne nommée FrameTime ni Dropped dans cette version du README. | https://raw.githubusercontent.com/GameTechDev/PresentMon/main/README-ConsoleApplication.md / lue 2026-10-15 / hors moteur | établi | Verdict palier 1 : percentile 95 / 99 de MsBetweenPresents, nombre d'images au-dessus d'un seuil, MsGPUBusy comparé au temps d'image. | Fixer les seuils d'après la base de l'alpha (LogStats, Indicateurs). | lp-perf |
| R11-05 | La capture demande l'appartenance au groupe « Performance Log Users » ou des droits administrateur ; sans cela, erreur d'accès refusé ou processus listés « ». | https://github.com/GameTechDev/PresentMon / lue 2026-10-15 / hors moteur | établi | Prérequis du poste : un agent ne peut pas l'obtenir seul. | Geste de l'utilisateur (ajout au groupe), à noter dans la recette. | lp-perf |
| R11-06 | PresentMon se déclare compatible DirectX, OpenGL et Vulkan ; la mesure passe par les événements Windows (ETW), ce qui laisse penser qu'elle fonctionne sur une build Shipping. Aucun essai sur UE 5.8 ni sur LifePlay. | https://github.com/GameTechDev/PresentMon / lue 2026-10-15 / hors moteur | estimé | Build empaquetée du jeu, DX12 ou DX11. | Marquer « à éprouver » dans la recette ; premier essai sur la build Development. | lp-perf |
| R11-07 | CapFrameX est construit sur PresentMon, version 1.9.1 citée ; les captures sont en JSON (CSV brut optionnel), le déclenchement se fait par raccourci clavier, et il embarque un serveur MCP local (port 1337 par défaut) pouvant lancer et arrêter une capture. Licence non affichée par la page. | https://github.com/CXWorld/CapFrameX / lue 2026-10-15 / hors moteur | non vérifié | Alternative à PresentMon avec interface ; pas de mode console documenté. | Ne pas retenir pour le banc sans humain ; garder pour l'analyse manuelle. | lp-perf |
| R11-08 | PerfReportTool (version 4.274.1) est livré avec UE 5.8 dans Engine\Binaries\DotNET\CsvTools ; entrée par -csv fichier ou -csvdir dossier ou -csvList, sortie par -o dossier ; options utiles : -reportType (types réels du ReportTypes.xml 5.8 : Default60fps, Default30fps, AI5, Memory ; l'aide cite flythrough / playthrough en exemple, absents du fichier), -writeSummaryCsv, -summaryTableOutputFormats html/csv/json, -noWatermarks, -minx / -maxx. Lève la lacune de R4-13 (syntaxe UE 4.24). | Aide de l'exécutable local du moteur 5.8 (D:\Game\Launcher\Engine\UE_5.8\Engine\Binaries\DotNET\CsvTools\PerfreportTool.exe, lancé sans argument) / 2026-10-15 / UE 5.8 | établi | Palier 2 : rapport et table de synthèse à partir des CSV du CSV Profiler. | Recette csvprofile.md ; type de rapport par défaut Default60fps (ReportTypes.xml:52). | lp-perf |
| R11-09 | PerfReportTool n'accepte pas -help : l'option est lue comme un nom de fichier et provoque une exception ; l'usage s'affiche lancé sans argument. | Essai local sur l'exécutable 5.8 / 2026-10-15 / UE 5.8 | établi | Piège pour un agent qui cherche l'aide. | Écrire dans la recette : lancer sans argument. | lp-perf |
| R11-10 | Le dossier CsvTools de 5.8 contient aussi CSVCollate, CSVFilter, CSVSplit, CsvConvert, CSVToSVG, les modèles ReportTypes.xml et ReportGraphs.xml, et des bibliothèques Horde / PerformanceTrends. | Listage local du dossier moteur 5.8 / 2026-10-15 / UE 5.8 | établi | Boîte à outils déjà installée : rien à télécharger pour le palier 2. | Citer les noms dans la recette. | lp-perf |
| R11-11 | Unreal Insights (UnrealInsights.exe) et le serveur de traces (UnrealTraceServer.exe) sont présents dans Engine\Binaries\Win64 de UE 5.8. | Listage local du dossier moteur 5.8 / 2026-10-15 / UE 5.8 | établi | Alternative native à Tracy pour les traces de fonctions (voir R4-05 et suivantes). | Essayer Insights avant d'intégrer Tracy. | lp-perf |
| R11-12 | Tracy est sous licence BSD à 3 clauses. | https://raw.githubusercontent.com/wolfpld/tracy/master/LICENSE / lue 2026-10-15 / hors moteur | établi | Palier 3 : compatible avec un usage dans le dépôt privé de l'addon. | Rien avant besoin réel. | lp-perf |
| R11-13 | La dernière version de Tracy est la 0.14.1 (22 août, année non affichée). Le dépôt contient des outils capture et csvexport ; la page ne décrit ni leur syntaxe ni les fichiers fournis pour Windows. | https://github.com/wolfpld/tracy/releases / lue 2026-10-15 / hors moteur | non vérifié | Syntaxe de capture hors ligne non confirmée : à lire dans le manuel (tracy.pdf) avant la recette. | La recette tracy.md reste un squelette. | lp-perf |
| R11-14 | Tracy fonctionne en client (programme profilé) et serveur (interface) reliés par socket TCP. Résultat de recherche seul, page non ouverte. | 267fadbe6f/docs/developers/developing_iree/profiling_with_tracy.md / date inconnue / hors moteur |
non vérifié | Capture à distance ou hors ligne à confirmer. | Lire le manuel officiel. | lp-perf |
| R11-15 | UE expose l'interface FExternalProfiler pour brancher un profileur externe ; aucun plugin Tracy officiel d'Epic n'a été trouvé. L'intégration de Tracy demande d'ajouter ses sources au projet, donc un build C++. Billet de blog non ouvert (403). | https://www.rick.me.uk/posts/2024/12/cpp-profiling-in-unreal-engine-5/ / 2024-12 / UE 5.x | non vérifié | Coût du palier 3 : BUILD-GO et modification de code. | Garder Tracy « à la demande » ; préférer Insights tant que possible. | lp-perf |
| R11-16 | Les notes de version 5.6 à 5.8 s'ouvrent avec le paramètre ?application_version=5.x ; sans lui, les URL 5.6 et 5.7 redirigent vers 5.8. Le texte de la page se lit par script dans Chrome. | https://dev.epicgames.com/documentation/unreal-engine/unreal-engine-5-7-release-notes?application_version=5.7 / lue 2026-10-15 / UE 5.6 à 5.8 | établi | Méthode de recherche des agents (WebFetch ne rend pas ces pages). | Mettre dans la recette de recherche de la BC. | lp-perf |
| R11-17 | WITH_AUTOMATION_TESTS vaut WITH_DEV_AUTOMATION_TESTS ou WITH_PERF_AUTOMATION_TESTS (AutomationTest.h:63-65) ; UnrealBuildTool compile les tests sauf en configuration Test ou Shipping (UEBuildTarget.cs:6316-6332), avec les surcharges bForceCompileDevelopmentAutomationTests, bForceCompilePerformanceAutomationTests et bForceDisableAutomationTests. Lève la lacune de BC-R3 : une build empaquetée Development embarque les tests, Test et Shipping non. | Code local du moteur 5.8 : Engine/Source/Runtime/Core/Public/Misc/AutomationTest.h et Engine/Source/Programs/UnrealBuildTool/Configuration/UEBuildTarget.cs / lu 2026-10-15 / UE 5.8 | établi | Build empaquetée de LifePlay : choisir Development pour un banc Gauntlet. | Prévoir une cible Development empaquetée pour P2b. | lp-autotest |
| R11-18 | UE.TargetAutomation exige un éditeur hôte qui pilote le client empaqueté par TcpMessaging (UE.Automation.cs:423-460, 272, 276, relevé par la fiche DOC-Gauntlet) ; nuance de R3-12. | OPT/DOC/DOC-Gauntlet.md (code local C# du moteur 5.8) / 2026-10-15 / UE 5.8 | estimé | Banc P2b : l'éditeur doit tourner pendant l'essai. | Vérifier les lignes citées avant l'essai. | lp-autotest |
Lacunes et doutes
- RenderDoc (option) : non instruit, faute de budget.
- Gauntlet : voir R3-12 et R3-101 ; aucun essai 5.8 empaqueté.
- PresentMon : option --terminate_on_proc_exit et noms de colonnes à revérifier sur l'exécutable installé (le README peut dépasser la version installée).
- Tracy : syntaxe de capture, version utilisable avec UE 5.8 et coût de l'intégration non établis.
- Seuils de verdict : aucun seuil standard trouvé ; à fixer sur la base de l'alpha (voir OPT0-PIPELINE.md).