LifePlay-Revival/Docs/Migration/etat/VQ/VQ4/VQ4-VAL.md
edujiro5972 0f1a61c9fe VQ : qualite video (sous-systeme LPVideoQuality, onglet Reglages, DefaultScalability), lots VQ0 a VQ5 et correctifs (CHG-237 a 242)
LifePlay.uproject : SupportedTargetPlatforms Win64 sur LPAnimCore, origine non revendiquee, range ici.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:40:47 +02:00

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 :

  1. Settings > Video : 6 lignes LPVideo* avant LPColor* ; ShadowQuality, PostProcessQuality, PostProcessAAQuality masqués, y compris après aller-retour d'onglet.
  2. Overall 0→3 : les 4 curseurs suivent ; un curseur individuel → Custom.
  3. Recommended : journal VRAM dediee detectee X Go, niveau conforme aux seuils (GPU intégré : Low/Med, limite documentée).
  4. Relance : Video : relu Overall N, ... depuis LPVideoQuality.ini.
  5. 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