Add TracyMangle.hpp file to centralize config name mangling

Also rename MANGLED_NAME_BASED_ON_DEFINES => MANGLED_NAME_BASED_ON_CONFIG
This commit is contained in:
Clément Grégoire
2026-04-15 13:37:31 +02:00
parent a4f245550b
commit ca076b4a60
5 changed files with 64 additions and 57 deletions

View File

@@ -211,6 +211,7 @@ set(client_includes
${TRACY_PUBLIC_DIR}/client/TracyDxt1.hpp
${TRACY_PUBLIC_DIR}/client/TracyFastVector.hpp
${TRACY_PUBLIC_DIR}/client/TracyLock.hpp
${TRACY_PUBLIC_DIR}/client/TracyMangle.hpp
${TRACY_PUBLIC_DIR}/client/TracyProfiler.hpp
${TRACY_PUBLIC_DIR}/client/TracyRingBuffer.hpp
${TRACY_PUBLIC_DIR}/client/TracyScoped.hpp

View File

@@ -165,6 +165,7 @@ client_includes = [
'public/client/TracyFastVector.hpp',
'public/client/TracyKCore.hpp',
'public/client/TracyLock.hpp',
'public/client/TracyMangle.hpp',
'public/client/TracyProfiler.hpp',
'public/client/TracyRingBuffer.hpp',
'public/client/TracyScoped.hpp',

View File

@@ -0,0 +1,57 @@
#ifndef __TRACYMANGLE_HPP__
#define __TRACYMANGLE_HPP__
#ifdef TRACY_ENABLE
#define TRACY_ENABLE_MANGLE _E1
#else
#define TRACY_ENABLE_MANGLE _E0
#endif
#ifdef TRACY_ON_DEMAND
#define TRACY_ON_DEMAND_MANGLE _OD1
#else
#define TRACY_ON_DEMAND_MANGLE _OD0
#endif
#ifdef TRACY_DELAYED_INIT
#define TRACY_DELAYED_INIT_MANGLE _DI1
#else
#define TRACY_DELAYED_INIT_MANGLE _DI0
#endif
#ifdef TRACY_MANUAL_LIFETIME
#define TRACY_MANUAL_LIFETIME_MANGLE _ML1
#else
#define TRACY_MANUAL_LIFETIME_MANGLE _ML0
#endif
#ifdef TRACY_FIBERS
#define TRACY_FIBERS_MANGLE _F1
#else
#define TRACY_FIBERS_MANGLE _F0
#endif
#ifdef TRACY_DISALLOW_HW_TIMER
#define TRACY_DISALLOW_HW_TIMER_MANGLE _DHT1
#else
#define TRACY_DISALLOW_HW_TIMER_MANGLE _DHT0
#endif
#ifdef TRACY_TIMER_FALLBACK
#define TRACY_TIMER_FALLBACK_MANGLE _TF1
#else
#define TRACY_TIMER_FALLBACK_MANGLE _TF0
#endif
#define MANGLED_NAME_BASED_ON_CONFIG(base) \
TracyConcat(TracyConcat(TracyConcat(TracyConcat(TracyConcat(TracyConcat(TracyConcat( \
base##_CFG, \
TRACY_ENABLE_MANGLE), \
TRACY_ON_DEMAND_MANGLE), \
TRACY_DELAYED_INIT_MANGLE), \
TRACY_MANUAL_LIFETIME_MANGLE), \
TRACY_FIBERS_MANGLE), \
TRACY_DISALLOW_HW_TIMER_MANGLE), \
TRACY_TIMER_FALLBACK_MANGLE)
#endif // __TRACYMANGLE_HPP__

View File

@@ -1374,7 +1374,7 @@ static ProfilerThreadData& GetProfilerThreadData()
#endif
TRACY_API moodycamel::ConcurrentQueue<QueueItem>::ExplicitProducer* GetToken() { return GetProfilerThreadData().token.ptr; }
TRACY_API Profiler& MANGLED_NAME_BASED_ON_DEFINES(GetProfiler)() { return GetProfilerData().profiler; }
TRACY_API Profiler& MANGLED_NAME_BASED_ON_CONFIG(GetProfiler)() { return GetProfilerData().profiler; }
TRACY_API moodycamel::ConcurrentQueue<QueueItem>& GetQueue() { return GetProfilerData().queue; }
TRACY_API int64_t GetInitTime() { return GetProfilerData().initTime; }
TRACY_API std::atomic<uint32_t>& GetLockCounter() { return GetProfilerData().lockCounter; }
@@ -1434,7 +1434,7 @@ thread_local LuaZoneState init_order(104) s_luaZoneState { 0, false };
static Profiler init_order(105) s_profiler;
TRACY_API moodycamel::ConcurrentQueue<QueueItem>::ExplicitProducer* GetToken() { return s_token.ptr; }
TRACY_API Profiler& MANGLED_NAME_BASED_ON_DEFINES(GetProfiler)() { return s_profiler; }
TRACY_API Profiler& MANGLED_NAME_BASED_ON_CONFIG(GetProfiler)() { return s_profiler; }
TRACY_API moodycamel::ConcurrentQueue<QueueItem>& GetQueue() { return s_queue; }
TRACY_API int64_t GetInitTime() { return s_initTime.val; }
TRACY_API std::atomic<uint32_t>& GetLockCounter() { return s_lockCounter; }

View File

@@ -12,6 +12,7 @@
#include "tracy_SPSCQueue.h"
#include "TracyCallstack.hpp"
#include "TracyKCore.hpp"
#include "TracyMangle.hpp"
#include "TracySysPower.hpp"
#include "TracySysTime.hpp"
#include "TracyFastVector.hpp"
@@ -60,59 +61,6 @@
# define TracyConcatIndirect(x,y) x##y
#endif
#ifdef TRACY_ENABLE
#define TRACY_ENABLE_MANGLE _E1
#else
#define TRACY_ENABLE_MANGLE _E0
#endif
#ifdef TRACY_ON_DEMAND
#define TRACY_ON_DEMAND_MANGLE _OD1
#else
#define TRACY_ON_DEMAND_MANGLE _OD0
#endif
#ifdef TRACY_DELAYED_INIT
#define TRACY_DELAYED_INIT_MANGLE _DI1
#else
#define TRACY_DELAYED_INIT_MANGLE _DI0
#endif
#ifdef TRACY_MANUAL_LIFETIME
#define TRACY_MANUAL_LIFETIME_MANGLE _ML1
#else
#define TRACY_MANUAL_LIFETIME_MANGLE _ML0
#endif
#ifdef TRACY_FIBERS
#define TRACY_FIBERS_MANGLE _F1
#else
#define TRACY_FIBERS_MANGLE _F0
#endif
#ifdef TRACY_DISALLOW_HW_TIMER
#define TRACY_DISALLOW_HW_TIMER_MANGLE _DHT1
#else
#define TRACY_DISALLOW_HW_TIMER_MANGLE _DHT0
#endif
#ifdef TRACY_TIMER_FALLBACK
#define TRACY_TIMER_FALLBACK_MANGLE _TF1
#else
#define TRACY_TIMER_FALLBACK_MANGLE _TF0
#endif
#define MANGLED_NAME_BASED_ON_DEFINES(base) \
TracyConcat(TracyConcat(TracyConcat(TracyConcat(TracyConcat(TracyConcat(TracyConcat( \
base##_CFG, \
TRACY_ENABLE_MANGLE), \
TRACY_ON_DEMAND_MANGLE), \
TRACY_DELAYED_INIT_MANGLE), \
TRACY_MANUAL_LIFETIME_MANGLE), \
TRACY_FIBERS_MANGLE), \
TRACY_DISALLOW_HW_TIMER_MANGLE), \
TRACY_TIMER_FALLBACK_MANGLE)
namespace tracy
{
#if defined(TRACY_DELAYED_INIT) && defined(TRACY_MANUAL_LIFETIME)
@@ -138,8 +86,8 @@ struct GpuCtxWrapper
};
TRACY_API moodycamel::ConcurrentQueue<QueueItem>::ExplicitProducer* GetToken();
TRACY_API Profiler& MANGLED_NAME_BASED_ON_DEFINES(GetProfiler)();
tracy_force_inline Profiler& GetProfiler() { return MANGLED_NAME_BASED_ON_DEFINES(GetProfiler)(); }
TRACY_API Profiler& MANGLED_NAME_BASED_ON_CONFIG(GetProfiler)();
tracy_force_inline Profiler& GetProfiler() { return MANGLED_NAME_BASED_ON_CONFIG(GetProfiler)(); }
TRACY_API std::atomic<uint32_t>& GetLockCounter();
TRACY_API std::atomic<uint8_t>& GetGpuCtxCounter();
TRACY_API GpuCtxWrapper& GetGpuCtx();