2019-12-26 15:32:37 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2019-06-03 15:32:00 -04:00
|
|
|
|
|
|
|
|
#include "TimingProfilerModule.h"
|
|
|
|
|
#include "Analyzers/CpuProfilerTraceAnalysis.h"
|
|
|
|
|
#include "Analyzers/GpuProfilerTraceAnalysis.h"
|
|
|
|
|
#include "AnalysisServicePrivate.h"
|
2020-08-11 01:36:57 -04:00
|
|
|
#include "Model/ThreadsPrivate.h"
|
2019-06-03 15:32:00 -04:00
|
|
|
#include "Model/TimingProfilerPrivate.h"
|
|
|
|
|
|
2020-11-13 05:29:37 -04:00
|
|
|
namespace TraceServices
|
2019-06-03 15:32:00 -04:00
|
|
|
{
|
|
|
|
|
|
2019-10-03 16:26:48 -04:00
|
|
|
static const FName TimingProfilerModuleName("TraceModule_TimingProfiler");
|
|
|
|
|
static const FName TimingProfilerProviderName("TimingProfilerProvider");
|
2019-06-03 15:32:00 -04:00
|
|
|
|
|
|
|
|
void FTimingProfilerModule::GetModuleInfo(FModuleInfo& OutModuleInfo)
|
|
|
|
|
{
|
2019-10-03 16:26:48 -04:00
|
|
|
OutModuleInfo.Name = TimingProfilerModuleName;
|
2019-06-03 15:32:00 -04:00
|
|
|
OutModuleInfo.DisplayName = TEXT("Timing");
|
|
|
|
|
}
|
|
|
|
|
|
2019-10-03 16:26:48 -04:00
|
|
|
void FTimingProfilerModule::OnAnalysisBegin(IAnalysisSession& InSession)
|
2019-06-03 15:32:00 -04:00
|
|
|
{
|
|
|
|
|
FAnalysisSession& Session = static_cast<FAnalysisSession&>(InSession);
|
|
|
|
|
|
2020-08-11 01:36:57 -04:00
|
|
|
auto* ThreadProvider = Session.EditProvider<FThreadProvider>(FThreadProvider::ProviderName);
|
|
|
|
|
check(ThreadProvider != nullptr);
|
|
|
|
|
|
2019-06-03 15:32:00 -04:00
|
|
|
FTimingProfilerProvider* TimingProfilerProvider = new FTimingProfilerProvider(Session);
|
|
|
|
|
Session.AddProvider(TimingProfilerProviderName, TimingProfilerProvider);
|
2020-08-11 01:36:57 -04:00
|
|
|
Session.AddAnalyzer(new FCpuProfilerAnalyzer(Session, *TimingProfilerProvider, *ThreadProvider));
|
2019-10-03 16:26:48 -04:00
|
|
|
Session.AddAnalyzer(new FGpuProfilerAnalyzer(Session, *TimingProfilerProvider));
|
2019-06-03 15:32:00 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-13 05:29:37 -04:00
|
|
|
} // namespace TraceServices
|