UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IrisProfiler.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "HAL/Platform.h"
7
8#ifndef IRIS_PROFILER_ENABLE
9# if (UE_BUILD_SHIPPING)
10# define IRIS_PROFILER_ENABLE 0
11# else
12# define IRIS_PROFILER_ENABLE 1
13# endif
14#endif
15
16// When true this adds dynamic protocol names in profile captures. The downside is a noticeable cpu cost overhead but only while cpu trace recording is occurring.
17#ifndef UE_IRIS_PROFILER_ENABLE_PROTOCOL_NAMES
18# define UE_IRIS_PROFILER_ENABLE_PROTOCOL_NAMES !UE_BUILD_SHIPPING
19#endif
20
21// When true this adds low-level cpu trace captures of operations in Iris. Adds a little cpu overhead but only while cpu trace recording is occurring.
22#ifndef UE_IRIS_PROFILER_ENABLE_VERBOSE
23# if (UE_BUILD_SHIPPING || UE_BUILD_TEST)
24# define UE_IRIS_PROFILER_ENABLE_VERBOSE 0
25# else
26# define UE_IRIS_PROFILER_ENABLE_VERBOSE 1
27# endif
28#endif
29
30
31//#define IRIS_USE_SUPERLUMINAL
32
33#if IRIS_PROFILER_ENABLE
34# ifdef IRIS_USE_SUPERLUMINAL
35# include "c:/Program Files/Superluminal/Performance/API/include/Superluminal/PerformanceAPI.h"
37# pragma comment (lib, "c:/Program Files/Superluminal/Performance/API/lib/x64/PerformanceAPI_MD.lib")
38# define IRIS_PROFILER_SCOPE(X) PERFORMANCEAPI_INSTRUMENT(PREPROCESSOR_TO_STRING(X))
39# define IRIS_PROFILER_SCOPE_CONDITIONAL(X,Cond) PERFORMANCEAPI_INSTRUMENT(PREPROCESSOR_TO_STRING(X))
40# define IRIS_PROFILER_SCOPE_TEXT(X) PERFORMANCEAPI_INSTRUMENT_DATA(PREPROCESSOR_JOIN(IrisProfilerScope, __LINE__), X)
41# define IRIS_PROFILER_SCOPE_TEXT_CONDITIONAL(X, Cond) PERFORMANCEAPI_INSTRUMENT_DATA(PREPROCESSOR_JOIN(IrisProfilerScope, __LINE__), X)
42# else
44# define IRIS_PROFILER_SCOPE(X) TRACE_CPUPROFILER_EVENT_SCOPE(X)
45# define IRIS_PROFILER_SCOPE_CONDITIONAL(X,Cond) TRACE_CPUPROFILER_EVENT_SCOPE_CONDITIONAL(X, Cond)
46# define IRIS_PROFILER_SCOPE_TEXT(X) TRACE_CPUPROFILER_EVENT_SCOPE_TEXT(X)
47# define IRIS_PROFILER_SCOPE_TEXT_CONDITIONAL(X, Cond) TRACE_CPUPROFILER_EVENT_SCOPE_TEXT_CONDITIONAL(X, Cond)
48# endif
49#else
50# define PERFORMANCEAPI_ENABLED 0
51# define IRIS_PROFILER_SCOPE(X)
52# define IRIS_PROFILER_SCOPE_CONDITIONAL(X, Cond)
53# define IRIS_PROFILER_SCOPE_TEXT(X)
54# define IRIS_PROFILER_SCOPE_TEXT_CONDITIONAL(X, Cond)
55#endif
56
57#if UE_IRIS_PROFILER_ENABLE_PROTOCOL_NAMES
58# define IRIS_PROFILER_PROTOCOL_NAME(X) IRIS_PROFILER_SCOPE_TEXT(X)
59# define IRIS_PROFILER_PROTOCOL_NAME_CONDITIONAL(X, Cond) IRIS_PROFILER_SCOPE_TEXT_CONDITIONAL(X, Cond)
60#else
61# define IRIS_PROFILER_PROTOCOL_NAME(X)
62# define IRIS_PROFILER_PROTOCOL_NAME_CONDITIONAL(X, Cond)
63#endif
64
65#if UE_IRIS_PROFILER_ENABLE_VERBOSE
66# define IRIS_PROFILER_SCOPE_VERBOSE(X) IRIS_PROFILER_SCOPE(X);
67# define IRIS_PROFILER_SCOPE_VERBOSE_CONDITIONAL(X, Cond) IRIS_PROFILER_SCOPE_CONDITIONAL(X, Cond);
68#else
69# define IRIS_PROFILER_SCOPE_VERBOSE(X)
70# define IRIS_PROFILER_SCOPE_VERBOSE_CONDITIONAL(X, Cond)
71#endif
72
73#ifndef IRIS_CLIENT_PROFILER_ENABLE
74# define IRIS_CLIENT_PROFILER_ENABLE (!WITH_SERVER_CODE && CSV_PROFILER_STATS)
75#endif
76
77namespace UE::Net
78{
79
80#if IRIS_CLIENT_PROFILER_ENABLE
81
83{
84public:
85
89 static void RecordRPC(FName RPCName);
90
92
94 static bool IsCapturing();
95};
96
97#endif
98
99}
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
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition NameTypes.h:617
Definition NetworkVersion.cpp:28