1
0
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:
Bartosz Taudul
2021-11-01 23:56:19 +01:00
parent 8b15cd049c
commit 229d547e91
5 changed files with 64 additions and 2 deletions
+18
View File
@@ -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 );
+17
View File
@@ -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 );