LifePlay.uproject : SupportedTargetPlatforms Win64 sur LPAnimCore, origine non revendiquee, range ici. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5.6 KiB
VQ4-VAL — Validation finale V1 du chantier Video Quality
Fiche : VQ4-T1
Rôle : A-VAL
Date : 07 octobre 2026
Entrée : VQ1-SPEC.md §8, VQ2-SPEC.md §13, VQ2-VAL.md, VQ3-VAL.md
Modèle
| Modèle | |
|---|---|
| Attendu | claude-sonnet-5-5-high |
| Réel | claude-sonnet-5-5-high (Claude Sonnet 5.5) |
Verdict : PASS (avec BLOCKED-UI sur le test manuel Settings, inchangé depuis VQ2 / VQ3)
1. Critères rejoués (code)
| # | Critère | Résultat | Preuve |
|---|---|---|---|
| 1 | SetLevels : sync Overall ↔ 4 curseurs |
PASS | LPVideoQualitySubsystem.cpp l.289-303 : bFromOverall && Overall >= 0 → FromOverall (4 groupes alignés), sinon Normalize() (Overall = niveau commun, sinon -1 Custom). Enchaîne ApplyToScalability, RefreshWidgets, Save. Les 5 handlers OnOverall/Shadows/Textures/Effects/AAChanged (l.331-382) passent par SetLevels, avec garde bRefreshing contre la boucle. |
| 2 | Recommended : VRAM | PASS | QueryDedicatedVideoMemoryBytes (garde GDynamicRHI, RHIGetTextureMemoryStats, DedicatedVideoMemory, max(.., 0)) l.36-44. LevelFromVramGB l.48-66 : ≤ 0 → 2 High ; < 4 → 0 ; < 6 → 1 ; < 10 → 2 ; sinon 3. OnRecommendedClicked l.384-398 : journal + SetLevels(FromOverall(Level), true). |
| 3 | CategoryOf : LPVideo* → Video |
PASS | LPSettingsSubsystem.cpp l.153 : StartsWith("LPColor") || StartsWith("LPVideo") → TabVideo. |
| 4 | CategoryOf : TabHidden |
PASS | l.41 TabHidden = -2 ; l.146-151 : ShadowQuality, PostProcessQuality, PostProcessAAQuality → TabHidden. ApplyRows l.599 exclut TabHidden. |
| 5 | LPColor* toujours CategoryOf Video |
PASS | Même branche l.153 ; LPColorGradeSubsystem.* non modifié (git status : seuls LPSettingsSubsystem.cpp, LifePlay.Build.cs, DefaultScalability.ini et LPVideoQualitySubsystem.* bougent). |
| 6 | DefaultScalability.ini : structure |
PASS | 16 sections, uniquement [ShadowQuality@0..3], [TextureQuality@0..3], [EffectsQuality@0..3], [AntiAliasingQuality@0..3]. |
| 7 | DefaultScalability.ini : cvars L7c interdites |
PASS | Voir §2 (0 occurrence). |
| 8 | DefaultEngine.ini inchangé (L7c) |
PASS | git status / git diff --stat Config/DefaultEngine.ini : vide. Valeurs L7c toujours présentes : r.AntiAliasingMethod=2 (l.17), r.DynamicGlobalIlluminationMethod=0 (l.22), r.ReflectionMethod=2 (l.23), r.Shadow.Virtual.Enable=0 (l.24), DefaultGraphicsRHI_DX12 (l.129). |
| 9 | Aucune cvar L7c dans le code VQ | PASS | rg -i "Virtual|Lumen|AntiAliasingMethod|ReflectionMethod" sur LPVideoQualitySubsystem.* : seuls les mots-clés C++ virtual (.h l.55-56, faux positifs). |
2. Grep DefaultScalability.ini (re-exécuté)
Commande (insensible à la casse) :
rg -n -i "Virtual|Lumen|GlobalIllumination|AntiAliasingMethod|ReflectionMethod|SSR|DynamicGlobal|ScreenSpaceReflection|r\.Shadow\.Virtual|DefaultFeature" Config/DefaultScalability.ini
Résultat : 0 occurrence (exit 1). Les cvars écrites par le fichier sont exactement : fx.Niagara.QualityLevel, r.DetailMode, r.MaxAnisotropy, r.PostProcessAAQuality, r.RefractionQuality, r.Shadow.CSM.MaxCascades, r.Shadow.CSM.TransitionScale, r.Shadow.DistanceScale, r.Shadow.MaxCSMResolution, r.Shadow.MaxResolution, r.Shadow.PreShadowResolutionFactor, r.Shadow.RadiusThreshold, r.SSS.SampleSet, r.SSS.Scale, r.Streaming.MaxEffectiveScreenSize, r.Streaming.MipBias, r.Streaming.PoolSize, r.TranslucencyLightingVolumeDim. Aucune ne touche GI, VSM, méthode d'AA ou reflets.
3. Smoke -nullrhi et DLL
| Contrôle | Résultat |
|---|---|
UnrealEditor-LifePlay.dll |
23:29:07, postérieur à tous les sources (LPVideoQualitySubsystem.cpp 23:28:32, .h 23:21:19, LPSettingsSubsystem.cpp 23:20:54) : à jour |
| Démarrage | UnrealEditor-Cmd.exe LifePlay.uproject -game -nullrhi -nosound -unattended -nosplash -ExecCmds="quit" : exit 0, 44 s. Journal : Saved/Logs/VQ4VAL.log |
| Ligne vidéo | LogLifePlay: Display: Video : pas de .../LPVideoQuality.ini, niveaux lus depuis Scalability (Overall 3, Shadows 3, Textures 3, Effects 3, AA 3) |
| Couleur | Couleur : relu Brightness 0.00, ... depuis .../LPColorGrade.ini (sous-système couleur intact) |
| Warnings / Errors vidéo | aucun. Seule Error : LogPlayerController: InputMode:UIOnly ... Non-Focusable widget (déjà vue en VQ2/VQ3, sans lien) |
Le smoke ne couvre que le démarrage : le menu Settings n'est pas ouvert, donc pas de ligne controles ajoutes.
4. BLOCKED-UI (non automatisable ici)
À faire à la main, hors clôture documentaire :
- Settings > Video : 6 lignes
LPVideo*avantLPColor*;ShadowQuality,PostProcessQuality,PostProcessAAQualitymasqués, y compris après aller-retour d'onglet. - Overall 0→3 : les 4 curseurs suivent ; un curseur individuel →
Custom. Recommended: journalVRAM dediee detectee X Go, niveau conforme aux seuils (GPU intégré : Low/Med, limite documentée).- Relance :
Video : relu Overall N, ...depuisLPVideoQuality.ini. - En jeu, niveau 3 : GI dynamique, VSM et AA (TAA) inchangés ; lecture console
sg.*/r.*.
5. Synthèse
| Critère | Statut |
|---|---|
SetLevels sync |
PASS |
| Recommended VRAM | PASS |
CategoryOf LPVideo* + TabHidden |
PASS |
DefaultScalability.ini sans cvars L7c |
PASS (grep : 0) |
LPColor* toujours Video |
PASS |
DefaultEngine.ini inchangé |
PASS |
DLL récente + smoke -nullrhi |
PASS |
| Test manuel Settings | BLOCKED-UI |