O0 : resultats de la mesure en jeu (a-coups Blueprint, physique) et bibliotheque Fab
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
b4c4886fc9
commit
d2fa4b5df8
2 changed files with 89 additions and 0 deletions
|
|
@ -151,3 +151,91 @@ Règles :
|
|||
|
||||
Recommandation : commencer par les fonctions du moteur (§7), qui couvrent les besoins identifiés sans
|
||||
dépendance nouvelle.
|
||||
|
||||
## 9. Résultats de la mesure en jeu (2026-10-02)
|
||||
|
||||
Build L7cdj (Development), `LifePlay_profil_O0.bat`, ≈ 12 minutes de jeu sur une machine AMD Ryzen 7 5800H avec carte graphique Radeon :
|
||||
4 tranches complètes de 9 000 images (36 004 images). Données archivées dans
|
||||
`D:\Game\LifePlay_Backup_5.5\O0_profil_20261002`, journal `Saved/Logs/portage/O0_profil_20261002.log`.
|
||||
|
||||
> Lancement : la capture CSV doit être démarrée par `-ExecCmds="csvprofile repeat=20, csvprofile frames=9000"`.
|
||||
> L'option `-csvCaptureFrames` sur la ligne de commande démarre la capture avant l'initialisation du rendu, et le
|
||||
> moteur s'arrête (`IsRayTracingAllowed() may only be called once RHI is initialized`).
|
||||
|
||||
### 9.1 Régime normal : aucun goulot
|
||||
|
||||
| Mesure (médiane par tranche) | Valeur |
|
||||
|---|---|
|
||||
| Temps d'image | **16,7 ms** : le jeu est plafonné à 60 images/s et tient ce plafond |
|
||||
| Thread de jeu | 3,9 à 4,4 ms |
|
||||
| Thread de rendu | 7,8 à 8,5 ms (dont ≈ 9 ms d'attente, `EventWait`) |
|
||||
| GPU | 7,3 à 11,1 ms |
|
||||
|
||||
Il reste environ deux fois de marge sur chaque thread. Les hypothèses G1, G2 et G4 (§4) ne se vérifient
|
||||
pas en régime normal sur cette machine.
|
||||
|
||||
### 9.2 Le vrai problème : les à-coups du thread de jeu
|
||||
|
||||
| Seuil | Images concernées (sur 36 004) |
|
||||
|---|---:|
|
||||
| > 33 ms | 262 |
|
||||
| > 50 ms | 159 |
|
||||
| > 100 ms | 112 |
|
||||
| > 250 ms | 43 |
|
||||
| > 1 s | 3 (chargement de partie : 31,5 s ; application des réglages : 5,4 s ; 1,7 s) |
|
||||
|
||||
- Les images longues durent **de 0,5 à 0,9 s**, à intervalles irréguliers, plusieurs fois par minute ; le
|
||||
thread de jeu en est la cause, le rendu restant à 8 ms.
|
||||
- Dans ces images, le temps va aux **minuteries Blueprint** (`TimerManager`, 38 s cumulées) et aux nœuds
|
||||
`Delay` (`FlushLatentActions`, 9 s cumulées).
|
||||
- Ce sont les traitements de `GI` déclenchés par minuterie : passage du temps, IA, recherche de scènes,
|
||||
génération de personnages avec lecture de fichiers texte et chargement synchrone de maillages.
|
||||
|
||||
**Nouvelle priorité : G6, à-coups des traitements Blueprint sur minuterie.** Le CSV ne nomme pas les
|
||||
fonctions Blueprint. L'étape suivante est une trace Unreal Insights avec les événements nommés
|
||||
(`-trace=cpu,frame,loadtime -statnamedevents`), pour identifier les fonctions de `GI` en cause et les
|
||||
chargements synchrones.
|
||||
|
||||
### 9.3 Mémoire (fin de session, LLM)
|
||||
|
||||
| Catégorie | Mo |
|
||||
|---|---:|
|
||||
| Total processus | 3 546 |
|
||||
| Textures | 624 |
|
||||
| **Physique (Chaos)** | **463**, dont 124 de structures d'accélération et 92 de maillages de collision (trimesh) |
|
||||
| UObject | 226 |
|
||||
| Cibles de rendu | 215 |
|
||||
| Maillages | 75 |
|
||||
|
||||
La physique occupe presque autant que les textures. Hypothèse : collisions détaillées du maillage de la
|
||||
ville (`CentralLondon`, 1,08 million de triangles) et des meubles. Ce poste devient le levier mémoire n° 1.
|
||||
|
||||
### 9.4 Lots révisés
|
||||
|
||||
| Ordre | Lot | Justification |
|
||||
|---|---|---|
|
||||
| 1 | **O1** build (plugins, `.pdb`) | inchangé : gain sûr de ≈ 350 Mo |
|
||||
| 2 | **O9** (nouveau) : trace Insights des à-coups, puis correction ciblée (chargement asynchrone, étalement des traitements) | seul défaut ressenti en jeu |
|
||||
| 3 | **O10** (nouveau) : collisions (ville et meubles) | 463 Mo de physique |
|
||||
| 4 | O4 textures, O2 compression | mémoire vidéo, taille |
|
||||
| — | O3, O5, O6 (animation, LOD, morphs) | **reportés** : aucun goulot mesuré en régime normal ; à remesurer sur une machine plus modeste |
|
||||
|
||||
## 10. Bibliothèque Fab de l'utilisateur (lue le 2026-10-02 sur fab.com)
|
||||
|
||||
La bibliothèque compte environ 3 000 produits, dont 302 outils et plugins. Produits utiles au chantier,
|
||||
**déjà possédés** :
|
||||
|
||||
| Produit | Éditeur | Intérêt pour LifePlay |
|
||||
|---|---|---|
|
||||
| Ultimate Optimization Toolkit | IchiQ | mesure et débogage des performances (O9) |
|
||||
| Optimization Tools plugin | Creative Elicya | outils d'optimisation de niveau |
|
||||
| Asset Analytics | Mohsen Tabasi | analyse du poids et de l'usage des assets (O7, O8) |
|
||||
| Dash — Advanced Asset Manager | Polygonflow | gestion et recherche d'assets (O7) |
|
||||
| Assets Auto Organizer | Beta Projects | réorganisation des dossiers (O7) : **à n'utiliser qu'avec redirecteurs et vérification**, le jeu cherchant les assets par nom |
|
||||
| Asset Naming Convention Keeper ; Asset Sanitizer | Tobosoksini Games ; MallHockE | conventions de nommage (O7) |
|
||||
| Ultimate UE5 Project Organizer | Iron Cauldron | modèle d'arborescence (O7) |
|
||||
| **MetaHuman Crowd Sample** | Epic Games | **exemple officiel de foule optimisée** (budget d'animation, LOD) : référence pour O3/O5 |
|
||||
| AssetDump: Agents-readable assets | fallingsappy | export lisible des assets pour un agent : pourrait compléter `AuditAssets.py` |
|
||||
|
||||
Rien n'a été acheté, réclamé ni téléchargé. Chaque outil retenu sera évalué dans une copie du projet,
|
||||
dans un lot dédié, avec l'accord de l'utilisateur.
|
||||
|
|
@ -904,3 +904,4 @@ Validation L7c/L7d (2026-10-02, parc, même cadrage) : la nuit reste claire (sol
|
|||
|---|---|---|---|---|---|
|
||||
| CHG-058 | 2026-10-02 | Doc | nouveaux `07_Architecture_5.5.md`, `08_Guide_Developpeur.md`, `09_Commandes_Utiles.md`, `10_Protocole_Operations.md` ; mis à jour `README.md` (migration et racine), `01`, `03`, `04` (bilan §5), `05` (CX-C14 à C18, statuts), `06` (résultat V1), registre (ERR-020) | finalisation de la documentation de migration : architecture finale, guide développeur, commandes, protocole et leçons | `git revert` du commit |
|
||||
| CHG-059 | 2026-10-02 | O0 | nouveaux `Tools/AuditAssets.py`, `Docs/Migration/11_Audit_Optimisation.md` ; lanceur `LifePlay_profil_O0.bat` (build L7cdj, hors dépôt) | audit d'optimisation en lecture seule : inventaire des assets, build livré, leviers et lots proposés ; aucune modification du projet | `git revert` du commit |
|
||||
| CHG-060 | 2026-10-02 | O0 | `Docs/Migration/11_Audit_Optimisation.md` §9-10 ; lanceur `LifePlay_profil_O0.bat` corrigé (capture par `-ExecCmds`) | résultats de la mesure en jeu (60 images/s tenues, à-coups du thread de jeu dus aux minuteries Blueprint, 463 Mo de physique) ; produits utiles de la bibliothèque Fab ; lots révisés | `git revert` du commit |
|
||||
|
|
|
|||
Loading…
Reference in a new issue