diff options
| author | Martin Ridgers <[email protected]> | 2021-10-28 11:33:47 +0200 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2021-11-18 15:24:39 +0100 |
| commit | 4df0770ffe6fb03ed7b5248a7fadef935d856ad3 (patch) | |
| tree | a79a51c4c3fccd7a99562a99edd7caa67ec88ee2 /zencore | |
| parent | Filled out ZEN_THIRDPARTY_ macros for Clang and GCC (diff) | |
| download | zen-4df0770ffe6fb03ed7b5248a7fadef935d856ad3.tar.xz zen-4df0770ffe6fb03ed7b5248a7fadef935d856ad3.zip | |
Initial integration of Trace from UE5 via the --zentrace=y xmake config
Diffstat (limited to 'zencore')
| -rw-r--r-- | zencore/include/zencore/trace.h | 49 | ||||
| -rw-r--r-- | zencore/trace.cpp | 32 | ||||
| -rw-r--r-- | zencore/xmake.lua | 1 |
3 files changed, 82 insertions, 0 deletions
diff --git a/zencore/include/zencore/trace.h b/zencore/include/zencore/trace.h new file mode 100644 index 000000000..0bcb6e285 --- /dev/null +++ b/zencore/include/zencore/trace.h @@ -0,0 +1,49 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#if ZEN_WITH_TRACE + +#define __UNREAL__ 0 +#define IS_MONOLITHIC 1 +#define PLATFORM_WINDOWS ZEN_PLATFORM_WINDOWS +#define PLATFORM_UNIX ZEN_PLATFORM_LINUX +#define PLATFORM_APPLE ZEN_PLATFORM_MACOS +#define PLATFORM_ANDROID 0 +#define PLATFORM_HOLOLENS 0 +#define UE_BUILD_TEST 0 +#define UE_BUILD_SHIPPING 0 + +ZEN_THIRD_PARTY_INCLUDES_START +#if !defined(TRACE_IMPLEMENT) +# define TRACE_IMPLEMENT 0 +#endif +#include <trace.h> +#undef TRACE_IMPLEMENT + +ZEN_THIRD_PARTY_INCLUDES_END +#undef __UNREAL__ +#undef IS_MONOLITHIC +#undef PLATFORM_WINDOWS +#undef PLATFORM_UNIX +#undef PLATFORM_APPLE +#undef PLATFORM_ANDROID +#undef PLATFORM_HOLOLENS +#undef UE_BUILD_TEST +#undef UE_BUILD_SHIPPING + +#define ZEN_TRACE_CPU(x) TRACE_CPU_SCOPE(x) + +enum class TraceType +{ + File, + Network, +}; + +void TraceInit(const char* HostOrPath, TraceType Type); + +#else + +#define ZEN_TRACE_CPU(x) + +#endif // ZEN_WITH_TRACE diff --git a/zencore/trace.cpp b/zencore/trace.cpp new file mode 100644 index 000000000..3042c80c8 --- /dev/null +++ b/zencore/trace.cpp @@ -0,0 +1,32 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#if ZEN_WITH_TRACE + +#include <zencore/zencore.h> + +#define TRACE_IMPLEMENT 1 +#include <zencore/trace.h> +//#undef TRACE_IMPLEMENT + +void TraceInit(const char* HostOrPath, TraceType Type) +{ + switch (Type) + { + case TraceType::Network: + trace::SendTo(HostOrPath); + break; + + case TraceType::File: + trace::WriteTo(HostOrPath); + break; + } + + trace::FInitializeDesc Desc = { + .bUseImportantCache = false, + }; + trace::Initialize(Desc); + + trace::ToggleChannel("cpu", true); +} + +#endif // ZEN_WITH_TRACE diff --git a/zencore/xmake.lua b/zencore/xmake.lua index eade07700..90f070ddb 100644 --- a/zencore/xmake.lua +++ b/zencore/xmake.lua @@ -13,6 +13,7 @@ target('zencore') add_links("oo2corelinux64") add_syslinks("pthread") end + add_options("zentrace") add_packages( "vcpkg::spdlog", "vcpkg::fmt", |