diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 956ede81..b2550d67 100755 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -14,7 +14,6 @@ #include "../common/TracyProtocol.hpp" #include "../common/TracySocket.hpp" #include "../common/TracySystem.hpp" -#include "concurrentqueue.h" #include "TracyScoped.hpp" #include "TracyProfiler.hpp" @@ -27,10 +26,10 @@ namespace tracy enum { QueuePrealloc = 256 * 1024 }; -static moodycamel::ConcurrentQueue s_queue( QueueItemSize * QueuePrealloc ); -static thread_local moodycamel::ProducerToken s_token( s_queue ); +moodycamel::ConcurrentQueue s_queue( QueueItemSize * QueuePrealloc ); +thread_local moodycamel::ProducerToken s_token( s_queue ); -static std::atomic s_id( 0 ); +std::atomic s_id( 0 ); #ifndef TRACY_DISABLE static Profiler s_profiler; @@ -69,30 +68,6 @@ Profiler::~Profiler() s_instance = nullptr; } -QueueItem* Profiler::StartItem() -{ - return s_queue.enqueue_begin( s_token ); -} - -void Profiler::FinishItem() -{ - s_queue.enqueue_finish( s_token ); -} - -uint64_t Profiler::GetNewId() -{ - return s_id.fetch_add( 1, std::memory_order_relaxed ); -} - -void Profiler::FrameMark() -{ - int8_t cpu; - auto item = s_queue.enqueue_begin( s_token ); - item->hdr.type = QueueType::FrameMarkMsg; - item->hdr.id = (uint64_t)GetTime( cpu ); - s_queue.enqueue_finish( s_token ); -} - bool Profiler::ShouldExit() { return s_instance->m_shutdown.load( std::memory_order_relaxed ); diff --git a/client/TracyProfiler.hpp b/client/TracyProfiler.hpp index 9e57d967..a7008afb 100755 --- a/client/TracyProfiler.hpp +++ b/client/TracyProfiler.hpp @@ -6,6 +6,7 @@ #include #include +#include "concurrentqueue.h" #include "../common/tracy_lz4.hpp" #include "../common/TracyQueue.hpp" @@ -26,6 +27,10 @@ struct SourceLocation uint32_t color; }; +extern moodycamel::ConcurrentQueue s_queue; +extern thread_local moodycamel::ProducerToken s_token;; +extern std::atomic s_id; + class Profiler { public: @@ -45,11 +50,18 @@ public: #endif } - static QueueItem* StartItem(); - static void FinishItem(); - static uint64_t GetNewId(); + static QueueItem* StartItem() { return s_queue.enqueue_begin( s_token ); } + static void FinishItem() { s_queue.enqueue_finish( s_token ); } + static uint64_t GetNewId() { return s_id.fetch_add( 1, std::memory_order_relaxed ); } - static void FrameMark(); + static void FrameMark() + { + int8_t cpu; + auto item = s_queue.enqueue_begin( s_token ); + item->hdr.type = QueueType::FrameMarkMsg; + item->hdr.id = (uint64_t)GetTime( cpu ); + s_queue.enqueue_finish( s_token ); + } static bool ShouldExit();