LifePlay-Revival/Docs/Migration/etat/VQ/VQ3/VQ3-IMPL-H.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

2.8 KiB

VQ3-IMPL-H — Bouton Recommended (VRAM)

Fiche : VQ3-T1 Rôle : A-IMPL-H Date : 07 octobre 2026 Entrée : VQ2-IMPL-H.md (stub), VQ2-VAL.md

Modèle

Modèle
Attendu (consigne) claude-sonnet-5-5-high (repli M3)
Réel claude-sonnet-5-5-high (Claude Sonnet 5.5)

Fichiers

Fichier Action
Source/LifePlay/LPVideoQualitySubsystem.cpp OnRecommendedClicked : calcul VRAM à la place du stub ; includes DynamicRHI.h, RHI.h, RHIStats.h ; helpers LPVideoQuality::QueryDedicatedVideoMemoryBytes et LevelFromVramGB ; constante RecommendedStubLevel remplacée par RecommendedUnknownLevel (2)
Source/LifePlay/LifePlay.Build.cs PrivateDependencyModuleNames.Add("RHI") (déjà fourni en transitif par Engine, rendu explicite)

LPVideoQualitySubsystem.h inchangé (signature de OnRecommendedClicked identique).

API choisie

Vérifiée dans les sources UE 5.5 :

  • RHIGetTextureMemoryStats(FTextureMemoryStats&) : DynamicRHI.h l.1316 (appelle GDynamicRHI).
  • FTextureMemoryStats::DedicatedVideoMemory : RHIStats.h l.15, int64 en octets, -1 si inconnu.
  • D3D12 : FD3D12DynamicRHI::RHIGetTextureMemoryStats (D3D12Texture.cpp l.394) renseigne DedicatedVideoMemory avec GDedicatedVideoMemory (hardware, fixé à la création du device).

Garde : GDynamicRHI nul → 0 ; valeur négative → FMath::Max(.., 0) → 0.

Seuils

VRAM dédiée Niveau Libellé
inconnue (0) 2 High (défaut)
< 4 Go 0 Low
< 6 Go 1 Med
< 10 Go 2 High
≥ 10 Go 3 Epic

Go = octets / 1024³.

Application

SetLevels(FLPVideoLevels::FromOverall(Level), true) — SetLevels vérifié (l.~280) :

  • bFromOverall && Overall >= 0 → FromOverall : les 4 groupes alignés sur le niveau, Overall = niveau ;
  • sinon (curseur individuel) → Normalize() : Overall = niveau commun ou -1 (Custom) ;
  • puis bConfigured = true, ApplyToScalability(), RefreshWidgets(), Save().

Journal (Display) :

  • Video : Recommended = High (niveau 2), VRAM dediee detectee 8.0 Go
  • Video : Recommended = High (niveau 2), VRAM dediee inconnue (0 Go), defaut High

Build

Build.bat LifePlayEditor Win64 Development -Project="D:\Game\LifePlay-master 5.5\LifePlay.uproject"

Résultat : compile OK (UHT sans erreur, Module.LifePlay.cpp compilé, UnrealEditor-LifePlay.dll relié, exit code 0, aucun warning sur les fichiers VQ3).

Limites

  • GPU intégré : la VRAM dédiée est petite (mémoire partagée avec la RAM) → Low ou Med. Choix assumé (seuil simple demandé) ; SharedSystemMemory non utilisé.
  • Non vérifié en exécution avec un vrai RHI (le bouton exige le menu Settings) : voir VQ3-VAL.md.