Files
UnrealEngineUWP/Engine/Source/Developer/TraceServices/Private/Modules/TimingProfilerModule.cpp
ionut matasaru 46e8495f46 [Insights] Changed trace event for second GPU to use same "GpuProfiler" logger (instead of a new "GpuProfiler2" logger).
#fyi uriel.doyon

[CL 15818384 by ionut matasaru in ue5-main branch]
2021-03-25 04:32:14 -04:00

47 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "TimingProfilerModule.h"
#include "Analyzers/CpuProfilerTraceAnalysis.h"
#include "Analyzers/GpuProfilerTraceAnalysis.h"
#include "AnalysisServicePrivate.h"
#include "Model/ThreadsPrivate.h"
#include "Model/TimingProfilerPrivate.h"
namespace TraceServices
{
static const FName TimingProfilerModuleName("TraceModule_TimingProfiler");
static const FName TimingProfilerProviderName("TimingProfilerProvider");
void FTimingProfilerModule::GetModuleInfo(FModuleInfo& OutModuleInfo)
{
OutModuleInfo.Name = TimingProfilerModuleName;
OutModuleInfo.DisplayName = TEXT("Timing");
}
void FTimingProfilerModule::OnAnalysisBegin(IAnalysisSession& InSession)
{
FAnalysisSession& Session = static_cast<FAnalysisSession&>(InSession);
auto* ThreadProvider = Session.EditProvider<FThreadProvider>(FThreadProvider::ProviderName);
check(ThreadProvider != nullptr);
FTimingProfilerProvider* TimingProfilerProvider = new FTimingProfilerProvider(Session);
Session.AddProvider(TimingProfilerProviderName, TimingProfilerProvider);
Session.AddAnalyzer(new FCpuProfilerAnalyzer(Session, *TimingProfilerProvider, *ThreadProvider));
Session.AddAnalyzer(new FGpuProfilerAnalyzer(Session, *TimingProfilerProvider));
}
void FTimingProfilerModule::GetLoggers(TArray<const TCHAR *>& OutLoggers)
{
OutLoggers.Add(TEXT("CpuProfiler"));
OutLoggers.Add(TEXT("GpuProfiler"));
}
const ITimingProfilerProvider* ReadTimingProfilerProvider(const IAnalysisSession& Session)
{
return Session.ReadProvider<ITimingProfilerProvider>(TimingProfilerProviderName);
}
} // namespace TraceServices