1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Commit events if IsActive

This commit is contained in:
Igor S. Gerasimov 2025-01-14 06:03:14 +01:00
parent bb88366958
commit 69c541e594

View File

@ -114,6 +114,7 @@ struct LuaZoneState
#define TracyLfqPrepare( _type ) \ #define TracyLfqPrepare( _type ) \
if (tracy::GetProfiler().IsActive()) { \
tracy::moodycamel::ConcurrentQueueDefaultTraits::index_t __magic; \ tracy::moodycamel::ConcurrentQueueDefaultTraits::index_t __magic; \
auto __token = tracy::GetToken(); \ auto __token = tracy::GetToken(); \
auto& __tail = __token->get_tail_index(); \ auto& __tail = __token->get_tail_index(); \
@ -121,9 +122,11 @@ struct LuaZoneState
tracy::MemWrite( &item->hdr.type, _type ); tracy::MemWrite( &item->hdr.type, _type );
#define TracyLfqCommit \ #define TracyLfqCommit \
__tail.store( __magic + 1, std::memory_order_release ); __tail.store( __magic + 1, std::memory_order_release ); \
}
#define TracyLfqPrepareC( _type ) \ #define TracyLfqPrepareC( _type ) \
if (tracy::GetProfiler().IsActive()) { \
tracy::moodycamel::ConcurrentQueueDefaultTraits::index_t __magic; \ tracy::moodycamel::ConcurrentQueueDefaultTraits::index_t __magic; \
auto __token = tracy::GetToken(); \ auto __token = tracy::GetToken(); \
auto& __tail = __token->get_tail_index(); \ auto& __tail = __token->get_tail_index(); \
@ -131,22 +134,27 @@ struct LuaZoneState
tracy::MemWrite( &item->hdr.type, _type ); tracy::MemWrite( &item->hdr.type, _type );
#define TracyLfqCommitC \ #define TracyLfqCommitC \
__tail.store( __magic + 1, std::memory_order_release ); __tail.store( __magic + 1, std::memory_order_release ); \
}
#ifdef TRACY_FIBERS #ifdef TRACY_FIBERS
# define TracyQueuePrepare( _type ) \ # define TracyQueuePrepare( _type ) \
if (tracy::GetProfiler().IsActive()) { \
auto item = tracy::Profiler::QueueSerial(); \ auto item = tracy::Profiler::QueueSerial(); \
tracy::MemWrite( &item->hdr.type, _type ); tracy::MemWrite( &item->hdr.type, _type );
# define TracyQueueCommit( _name ) \ # define TracyQueueCommit( _name ) \
tracy::MemWrite( &item->_name.thread, tracy::GetThreadHandle() ); \ tracy::MemWrite( &item->_name.thread, tracy::GetThreadHandle() ); \
tracy::Profiler::QueueSerialFinish(); tracy::Profiler::QueueSerialFinish(); \
}
# define TracyQueuePrepareC( _type ) \ # define TracyQueuePrepareC( _type ) \
if (tracy::GetProfiler().IsActive()) { \
auto item = tracy::Profiler::QueueSerial(); \ auto item = tracy::Profiler::QueueSerial(); \
tracy::MemWrite( &item->hdr.type, _type ); tracy::MemWrite( &item->hdr.type, _type );
# define TracyQueueCommitC( _name ) \ # define TracyQueueCommitC( _name ) \
tracy::MemWrite( &item->_name.thread, tracy::GetThreadHandle() ); \ tracy::MemWrite( &item->_name.thread, tracy::GetThreadHandle() ); \
tracy::Profiler::QueueSerialFinish(); tracy::Profiler::QueueSerialFinish(); \
}
#else #else
# define TracyQueuePrepare( _type ) TracyLfqPrepare( _type ) # define TracyQueuePrepare( _type ) TracyLfqPrepare( _type )
# define TracyQueueCommit( _name ) TracyLfqCommit # define TracyQueueCommit( _name ) TracyLfqCommit