4namespace vae {
namespace core {
namespace profiler {
26#ifdef VAE_USE_PROFILER
28 #include "../../external/tracy/Tracy.hpp"
29 #define VAE_PROFILER_FRAME_MARK() FrameMark
30 #define VAE_PROFILER_FRAME_MARK_START(name) FrameMarkStart(name)
31 #define VAE_PROFILER_FRAME_MARK_END(name) FrameMarkEnd(name)
32 #define VAE_PROFILER_SCOPE() ZoneScoped
33 #define VAE_PROFILER_SCOPE_NAMED(name) ZoneScopedN(name)
34 #define VAE_PROFILER_PLOT(name, value) TracyPlot(name, value)
35 #define VEA_PROFILER_THREAD_NAME(name) tracy::SetThreadName(name);
36 #define VAE_PROFILER_MESSAGE_L(msg) TracyMessageL(msg)
37 #define VAE_PROFILER_MESSAGE(msg, size) TracyMessage(msg, size)
38 #define VAE_PROFILER_MALLOC(ptr, size) TracyAlloc(ptr, size);
39 #define VAE_PROFILER_FREE(ptr) TracyFree(ptr);
40 #define VAE_PROFILER_MALLOC_L(ptr, size, name) TracyAllocN(ptr, size, name);
41 #define VAE_PROFILER_FREE_L(ptr, name) TracyFreeN(ptr, name);
42 #define VAE_PROFILER_MUTEX(type, name, desc) TracyLockableN(type, name, desc)
45 #define TKLB_TRACK_ALLOCATE(ptr, size) VAE_PROFILER_MALLOC_L(ptr, size, vae::core::profiler::tklbAllocator)
46 #define TKLB_TRACK_FREE(ptr, size) VAE_PROFILER_FREE_L(ptr, vae::core::profiler::tklbAllocator)
48 #define VAE_PROFILER_OVERLOAD_NEW() \
49 void* operator new(std::size_t count) { \
50 auto ptr = std::malloc(count); \
51 VAE_PROFILER_MALLOC_L(ptr, count, \
52 vae::core::profiler::objAllocator \
56 void operator delete (void* ptr) noexcept { \
57 VAE_PROFILER_FREE_L(ptr, \
58 vae::core::profiler::objAllocator \
63 namespace vae {
namespace core {
64 using Mutex = std::mutex;
65 using Lock = std::lock_guard<LockableBase(
Mutex)>;
69 #define VAE_PROFILER_FRAME_MARK()
70 #define VAE_PROFILER_FRAME_MARK_START(name)
71 #define VAE_PROFILER_FRAME_MARK_END(name)
72 #define VAE_PROFILER_SCOPE()
73 #define VAE_PROFILER_SCOPE_NAMED(name)
74 #define VAE_PROFILER_PLOT(name, value)
75 #define VEA_PROFILER_THREAD_NAME(name)
76 #define VAE_PROFILER_MESSAGE_L(msg)
77 #define VAE_PROFILER_MESSAGE(msg, size)
78 #define VAE_PROFILER_MALLOC(ptr, size)
79 #define VAE_PROFILER_FREE(ptr)
80 #define VAE_PROFILER_OVERLOAD_NEW()
81 #define VAE_PROFILER_MUTEX(type, name, desc) type name;
82 #define VAE_PROFILER_FREE_L(ptr, name)
83 #define VAE_PROFILER_MALLOC_L(ptr, size, name)
const char *const fsAllocator
Deals with everything deserialization.
const char *const deviceUnderruns
const char *const updateFrame
const char *const dspAllocator
Tracks DSP memory usage.
const char *const tklbAllocator
Old tklb stuff, shouldn't be anything important in here.
const char *const deviceOverruns
const char *const voiceHRTFCount
const char *const audioFrame
const char *const engineUnderruns
const char *const starvedVoiceCount
const char *const engineOverruns
const char *const mainAllocator
Allocates all the bank, event emitter arrays.
const char *const voiceCount
const char *const voiceVirtualCount
const char *const stoppedVoiceOverflow
const char *const emitters
const char *const objAllocator
Generic object heap like vae::core::Device.
const char *const voiceFinishedCount
std::unique_lock< Mutex > Lock
Contains Typedefinitions and basic structures use by the public API and internally.