52 lines
1.7 KiB
C++
52 lines
1.7 KiB
C++
// Portage UE 5.5 - lot debug (Docs/Migration/18_Build_Debug.md).
|
|
//
|
|
// Mesure opt-in, absente du comportement Shipping : journal des a-coups, signets Insights,
|
|
// instantane memoire, releve de collisions. Aucun Blueprint modifie.
|
|
// Inactif tant que -LPHitchLog ou -LPCollisionLog n'est pas passe.
|
|
// -LPCollisionLog echantillonne la collision du monde joue (pas au ExecCmds de demarrage)
|
|
// et ecrit un dump des qu'un trimesh est present, avec le nombre de triangles par acteur.
|
|
// Commandes console (non-Shipping) : LifePlay.MemSnapshot, LifePlay.CollisionDump,
|
|
// LifePlay.Bookmark, LifePlay.HitchSummary.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Subsystems/GameInstanceSubsystem.h"
|
|
#include "LPDebugSubsystem.generated.h"
|
|
|
|
UCLASS()
|
|
class LIFEPLAY_API ULPDebugSubsystem : public UGameInstanceSubsystem
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
|
|
virtual void Deinitialize() override;
|
|
|
|
/** Bilan des a-coups. When : "2 min", "fin" ou "console". */
|
|
void LogHitchSummary(const TCHAR* When) const;
|
|
|
|
private:
|
|
void OnEndFrame();
|
|
void SampleCollision();
|
|
void LogCollisionSummary(const TCHAR* When) const;
|
|
|
|
bool bHitchLog = false;
|
|
float HitchMs = 50.f;
|
|
int32 HitchCount = 0;
|
|
int32 HitchLines = 0;
|
|
double MaxHitchMs = 0.0;
|
|
double StartSeconds = 0.0;
|
|
double LastFrameSeconds = 0.0;
|
|
bool bLoggedTwoMinuteSummary = false;
|
|
|
|
bool bCollisionLog = false;
|
|
double NextCollisionSeconds = 0.0;
|
|
int32 CollisionSamples = 0;
|
|
int32 CollisionDumps = 0;
|
|
int32 PeakPrim = 0;
|
|
int64 PeakTriangles = 0;
|
|
int64 LastDumpedTriangles = -1;
|
|
int32 LastDumpedTriMeshes = -1;
|
|
FString CollisionTrackPath;
|
|
};
|