UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TaskTrace.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "HAL/Platform.h"
7#include "Trace/Config.h"
8#include "Trace/Trace.h"
10
11namespace UE { namespace Trace { class FChannel; } }
12
13#if !defined(UE_TASK_TRACE_ENABLED)
14#if UE_TRACE_ENABLED && !IS_PROGRAM && !UE_BUILD_SHIPPING
15#define UE_TASK_TRACE_ENABLED 1
16#else
17#define UE_TASK_TRACE_ENABLED 0
18#endif
19#endif
20
21namespace ENamedThreads
22{
23 // Forward declare
24 enum Type : int32;
25}
26
27#if UE_TASK_TRACE_ENABLED
28#define TASK_CORE_API CORE_API
29#else
30#define TASK_CORE_API
31#endif
32
33namespace TaskTrace
34{
36
37 using FId = uint64;
38
39 inline const FId InvalidId = ~FId(0);
40
41 inline constexpr uint32 TaskTraceVersion = 1;
42
44
45 void TASK_CORE_API Init();
46 void TASK_CORE_API Created(FId TaskId, uint64 TaskSize); // optional, used only if a task was created but not launched immediately
47 void TASK_CORE_API Launched(FId TaskId, const TCHAR* DebugName, bool bTracked, ENamedThreads::Type ThreadToExecuteOn, uint64 TaskSize);
48 void TASK_CORE_API Scheduled(FId TaskId);
50 void TASK_CORE_API Started(FId TaskId);
51 void TASK_CORE_API Finished(FId TaskId);
52 void TASK_CORE_API Completed(FId TaskId);
53 void TASK_CORE_API Destroyed(FId TaskId);
54
56 {
57 TASK_CORE_API explicit FWaitingScope(const TArray<FId>& Tasks); // waiting for given tasks completion
58 TASK_CORE_API explicit FWaitingScope(FId TaskId);
60 };
61
63 {
66
67 private:
68 bool bIsActive = false;
70 };
71
72#if !UE_TASK_TRACE_ENABLED
73 // NOOP implementation
74 inline FId GenerateTaskId() { return InvalidId; }
75 inline void Init() {}
76 inline void Created(FId TaskId, uint64 TaskSize) {}
77 inline void Launched(FId TaskId, const TCHAR* DebugName, bool bTracked, ENamedThreads::Type ThreadToExecuteOn, uint64 TaskSize) {}
78 inline void Scheduled(FId TaskId) {}
79 inline void SubsequentAdded(FId TaskId, FId SubsequentId) {}
80 inline void Started(FId TaskId) {}
81 inline void Finished(FId TaskId) {}
82 inline void Completed(FId TaskId) {}
83 inline void Destroyed(FId TaskId) {}
89#endif // UE_TASK_TRACE_ENABLED
90}
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define TASK_CORE_API
Definition TaskTrace.h:30
#define UE_TRACE_CHANNEL_EXTERN(ChannelName,...)
Definition Trace.h:448
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Array.h:670
Definition TaskGraph.cpp:63
Type
Definition TaskGraphInterfaces.h:57
@ Trace
Definition NetTraceConfig.h:23
Definition TaskTrace.h:34
void TASK_CORE_API Launched(FId TaskId, const TCHAR *DebugName, bool bTracked, ENamedThreads::Type ThreadToExecuteOn, uint64 TaskSize)
Definition TaskTrace.h:77
const FId InvalidId
Definition TaskTrace.h:39
constexpr uint32 TaskTraceVersion
Definition TaskTrace.h:41
FId TASK_CORE_API GenerateTaskId()
Definition TaskTrace.h:74
void TASK_CORE_API Init()
Definition TaskTrace.h:75
void TASK_CORE_API SubsequentAdded(FId TaskId, FId SubsequentId)
Definition TaskTrace.h:79
void TASK_CORE_API Scheduled(FId TaskId)
Definition TaskTrace.h:78
uint64 FId
Definition TaskTrace.h:37
Definition AdvancedWidgetsModule.cpp:13
Definition TaskTrace.h:63
TASK_CORE_API ~FTaskTimingEventScope()
Definition TaskTrace.h:88
TASK_CORE_API FTaskTimingEventScope(TaskTrace::FId InTaskId)
Definition TaskTrace.h:87
Definition TaskTrace.h:56
TASK_CORE_API FWaitingScope(const TArray< FId > &Tasks)
Definition TaskTrace.h:84
TASK_CORE_API ~FWaitingScope()
Definition TaskTrace.h:86