mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Add fiber support on client side.
This commit is contained in:
@@ -2752,6 +2752,24 @@ Profiler::DequeueStatus Profiler::DequeueSerial()
|
||||
tracy_free_fast( (void*)ptr );
|
||||
break;
|
||||
}
|
||||
case QueueType::FiberEnter:
|
||||
{
|
||||
ThreadCtxCheckSerial( fiberEnter );
|
||||
int64_t t = MemRead<int64_t>( &item->fiberEnter.time );
|
||||
int64_t dt = t - refThread;
|
||||
refThread = t;
|
||||
MemWrite( &item->fiberEnter.time, dt );
|
||||
break;
|
||||
}
|
||||
case QueueType::FiberLeave:
|
||||
{
|
||||
ThreadCtxCheckSerial( fiberLeave );
|
||||
int64_t t = MemRead<int64_t>( &item->fiberLeave.time );
|
||||
int64_t dt = t - refThread;
|
||||
refThread = t;
|
||||
MemWrite( &item->fiberLeave.time, dt );
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
assert( false );
|
||||
|
||||
@@ -584,6 +584,23 @@ public:
|
||||
TracyLfqCommit;
|
||||
}
|
||||
|
||||
#ifdef TRACY_FIBERS
|
||||
static tracy_force_inline void EnterFiber( const char* fiber )
|
||||
{
|
||||
TracyQueuePrepare( QueueType::FiberEnter );
|
||||
MemWrite( &item->fiberEnter.time, GetTime() );
|
||||
MemWrite( &item->fiberEnter.fiber, (uint64_t)fiber );
|
||||
TracyQueueCommit( fiberEnter );
|
||||
}
|
||||
|
||||
static tracy_force_inline void LeaveFiber()
|
||||
{
|
||||
TracyQueuePrepare( QueueType::FiberLeave );
|
||||
MemWrite( &item->fiberLeave.time, GetTime() );
|
||||
TracyQueueCommit( fiberLeave );
|
||||
}
|
||||
#endif
|
||||
|
||||
void SendCallstack( int depth, const char* skipBefore );
|
||||
static void CutCallstack( void* callstack, const char* skipBefore );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user