13#if !defined(MISCTRACE_ENABLED)
14#if UE_TRACE_ENABLED && !UE_BUILD_SHIPPING
15#define MISCTRACE_ENABLED 1
17#define MISCTRACE_ENABLED 0
21#ifndef FRAME_TRACE_ENABLED
22#define FRAME_TRACE_ENABLED MISCTRACE_ENABLED
60 template <
typename... Types>
71 template <
typename... Types>
95 template <
typename... Types>
96 UE_DEPRECATED(5.6,
"Use OutputBookmark that has CallstackId parameter")
102 template <
typename... Types>
103 UE_DEPRECATED(5.6,
"Use OutputBookmarkCycles that has CallstackId parameter")
116#define TRACE_BOOKMARK(Format, ...) \
117if (UE_TRACE_CHANNELEXPR_IS_ENABLED(BookmarkChannel)) \
119 static bool PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__); \
120 if (!PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__)) \
122 static_assert(std::is_const_v<std::remove_reference_t<decltype(Format)>>, "Formatting string must be a const TCHAR array."); \
123 static_assert(TIsArrayOrRefOfTypeByPredicate<decltype(Format), TIsCharEncodingCompatibleWithTCHAR>::Value, "Formatting string must be a TCHAR array."); \
124 UE_VALIDATE_FORMAT_STRING(Format, ##__VA_ARGS__); \
125 FMiscTrace::OutputBookmarkSpec(&PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__), __FILE__, __LINE__, Format); \
126 PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__) = true; \
128 FMiscTrace::OutputBookmark(CallstackTrace_GetCurrentId(), &PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__), ##__VA_ARGS__); \
131#define TRACE_BOOKMARK_CYCLES(Cycles, Format, ...) \
132if (UE_TRACE_CHANNELEXPR_IS_ENABLED(BookmarkChannel)) \
134 static bool PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__); \
135 if (!PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__)) \
137 static_assert(std::is_const_v<std::remove_reference_t<decltype(Format)>>, "Formatting string must be a const TCHAR array."); \
138 static_assert(TIsArrayOrRefOfTypeByPredicate<decltype(Format), TIsCharEncodingCompatibleWithTCHAR>::Value, "Formatting string must be a TCHAR array."); \
139 UE_VALIDATE_FORMAT_STRING(Format, ##__VA_ARGS__); \
140 FMiscTrace::OutputBookmarkSpec(&PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__), __FILE__, __LINE__, Format); \
141 PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__) = true; \
143 FMiscTrace::OutputBookmarkCycles(CallstackTrace_GetCurrentId(), Cycles, &PREPROCESSOR_JOIN(__BookmarkPoint, __LINE__), ##__VA_ARGS__); \
157#define TRACE_BEGIN_REGION(RegionName, ...) \
158FMiscTrace::OutputBeginRegion(RegionName __VA_OPT__(,) __VA_ARGS__);
171#define TRACE_BEGIN_REGION_WITH_ID(RegionName, ...) \
172FMiscTrace::OutputBeginRegionWithId(RegionName __VA_OPT__(,) __VA_ARGS__);
174#define TRACE_END_REGION(RegionName) \
175 FMiscTrace::OutputEndRegion(RegionName);
177#define TRACE_END_REGION_WITH_ID(RegionId) \
178 FMiscTrace::OutputEndRegionWithId(RegionId);
180#define TRACE_SCREENSHOT(Name, Cycle, Width, Height, Data) \
181 FMiscTrace::OutputScreenshot(Name, Cycle, Width, Height, Data);
183#define SHOULD_TRACE_SCREENSHOT() \
184 FMiscTrace::ShouldTraceScreenshot()
186#define SHOULD_TRACE_BOOKMARK() \
187 FMiscTrace::ShouldTraceBookmark()
189#define SHOULD_TRACE_REGION() \
190 FMiscTrace::ShouldTraceRegion()
194#define TRACE_BOOKMARK(...)
195#define TRACE_BOOKMARK_CYCLES(...)
196#define TRACE_BEGIN_REGION(...)
197#define TRACE_BEGIN_REGION_WITH_ID(...) 0;
198#define TRACE_END_REGION(...)
199#define TRACE_END_REGION_WITH_ID(...)
200#define TRACE_SCREENSHOT(...)
201#define SHOULD_TRACE_SCREENSHOT(...) false
202#define SHOULD_TRACE_BOOKMARK(...) false
203#define SHOULD_TRACE_REGION(...) false
207#if FRAME_TRACE_ENABLED
209#define TRACE_BEGIN_FRAME(FrameType) \
210FMiscTrace::OutputBeginFrame(FrameType);
212#define TRACE_END_FRAME(FrameType) \
213FMiscTrace::OutputEndFrame(FrameType);
217#define TRACE_BEGIN_FRAME(...)
218#define TRACE_END_FRAME(...)
uint32 CallstackTrace_GetCurrentId()
Definition CallstackTrace.h:113
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ETraceFrameType
Definition MiscTrace.h:28
@ TraceFrameType_Game
Definition MiscTrace.h:29
@ TraceFrameType_Count
Definition MiscTrace.h:32
@ TraceFrameType_Rendering
Definition MiscTrace.h:30
#define UE_TRACE_CHANNEL_EXTERN(ChannelName,...)
Definition Trace.h:448
Definition NameTypes.h:617
Definition MiscTrace.h:57
static void OutputBookmark(uint32 CallstackId, const void *BookmarkPoint, Types... FormatArgs)
Definition MiscTrace.h:61
static CORE_API uint64 OutputBeginRegionWithId(const TCHAR *RegionName, const TCHAR *Category=nullptr)
Definition MiscTrace.cpp:98
static CORE_API bool ShouldTraceScreenshot()
Definition MiscTrace.cpp:198
static CORE_API void OutputScreenshot(const TCHAR *Name, uint64 Cycle, uint32 Width, uint32 Height, TArray64< uint8 > Data)
Definition MiscTrace.cpp:162
static CORE_API void OutputBeginFrame(ETraceFrameType FrameType)
Definition MiscTrace.cpp:136
static CORE_API void OutputEndRegion(const TCHAR *RegionName)
Definition MiscTrace.cpp:108
static CORE_API void OutputEndRegionWithId(uint64 RegionId)
Definition MiscTrace.cpp:115
static CORE_API void OutputBeginRegion(const TCHAR *RegionName, const TCHAR *Category=nullptr)
Definition MiscTrace.cpp:90
static CORE_API bool ShouldTraceRegion()
Definition MiscTrace.cpp:208
static CORE_API void OutputBookmarkSpec(const void *BookmarkPoint, const ANSICHAR *File, int32 Line, const TCHAR *Format)
Definition MiscTrace.cpp:77
static CORE_API void OutputEndFrame(ETraceFrameType FrameType)
Definition MiscTrace.cpp:149
static CORE_API bool ShouldTraceBookmark()
Definition MiscTrace.cpp:203
static void OutputBookmarkCycles(uint32 CallstackId, uint64 Cycles, const void *BookmarkPoint, Types... FormatArgs)
Definition MiscTrace.h:72
Definition MiscTrace.h:36
static void Encode7bit(uint64 Value, uint8 *&BufferPtr)
Definition MiscTrace.h:37
static void EncodeZigZag(int64 Value, uint8 *&BufferPtr)
Definition MiscTrace.h:48