Files
UnrealEngineUWP/Engine/Source/Developer/TraceServices/Private/Modules/TasksModule.cpp
Andriy Tylychko 09ad210531 TaskTrace: TaskGraph traces and UnrealInsights support.
added TaskGraph specific traces as a separate channel that needs to be enabled by `-trace=tasks`. They include timing info about all task states and waiting for tasks. UnrealInsights support is limited for now. All info is available, a number of task specific counters are added, but dependency and waiting visualisation is not done yet. Available counters are:
* task latency
* number of scheduled tasks
* number of executing tasks

#rb ionut.matasaru martin.ridgers

[CL 15240172 by Andriy Tylychko in ue5-main branch]
2021-01-28 11:57:16 -04:00

32 lines
976 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "TasksModule.h"
#include "Analyzers/TasksAnalysis.h"
#include "Model/TasksProfilerPrivate.h"
#include "AnalysisServicePrivate.h"
#include "TraceServices/ModuleService.h"
namespace TraceServices
{
static const FName TasksModuleName("TraceModule_TasksProfiler");
static const FName TasksProviderName("TasksProvider");
void FTasksModule::GetModuleInfo(FModuleInfo& OutModuleInfo)
{
OutModuleInfo.Name = TasksModuleName;
OutModuleInfo.DisplayName = TEXT("TasksProfiler");
}
void FTasksModule::OnAnalysisBegin(IAnalysisSession& Session)
{
FTasksProvider* TasksProvider = new FTasksProvider(Session);
Session.AddProvider(TasksProviderName, TasksProvider);
Session.AddAnalyzer(new FTasksAnalyzer(Session, *TasksProvider));
}
const ITasksProvider* ReadTasksProvider(const IAnalysisSession& Session)
{
return Session.ReadProvider<ITasksProvider>(TasksProviderName);
}
} // namespace TraceServices