diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 6067409c..5d8b1883 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -1289,6 +1289,7 @@ Profiler::Profiler() , m_fiQueue( 16 ) , m_fiDequeue( 16 ) #endif + , m_symbolQueue( 64*1024 ) , m_frameCount( 0 ) , m_isConnected( false ) #ifdef TRACY_ON_DEMAND diff --git a/client/TracyProfiler.hpp b/client/TracyProfiler.hpp index 7ac2f00c..6e00184e 100644 --- a/client/TracyProfiler.hpp +++ b/client/TracyProfiler.hpp @@ -8,6 +8,7 @@ #include #include "tracy_concurrentqueue.h" +#include "tracy_readerwriterqueue.h" #include "TracyCallstack.hpp" #include "TracySysTime.hpp" #include "TracyFastVector.hpp" @@ -139,6 +140,20 @@ class Profiler bool flip; }; + enum class SymbolQueueItemType + { + CallstackFrame, + SymbolQuery, + CodeLocation, + ExternalName + }; + + struct SymbolQueueItem + { + SymbolQueueItemType type; + uint64_t ptr; + }; + public: Profiler(); ~Profiler(); @@ -813,6 +828,8 @@ private: TracyMutex m_fiLock; #endif + ReaderWriterQueue m_symbolQueue; + std::atomic m_frameCount; std::atomic m_isConnected; #ifdef TRACY_ON_DEMAND