mirror of
https://github.com/wolfpld/tracy
synced 2025-05-07 15:33:52 +00:00
Messages may now use serialized queue.
This commit is contained in:
parent
f8d37b45a3
commit
082255f940
@ -2428,6 +2428,26 @@ Profiler::DequeueStatus Profiler::DequeueSerial()
|
|||||||
tracy_free_fast( (void*)ptr );
|
tracy_free_fast( (void*)ptr );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case QueueType::Message:
|
||||||
|
case QueueType::MessageCallstack:
|
||||||
|
{
|
||||||
|
ThreadCtxCheckSerial( messageFatThread );
|
||||||
|
ptr = MemRead<uint64_t>( &item->messageFat.text );
|
||||||
|
uint16_t size = MemRead<uint16_t>( &item->messageFat.size );
|
||||||
|
SendSingleString( (const char*)ptr, size );
|
||||||
|
tracy_free_fast( (void*)ptr );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case QueueType::MessageColor:
|
||||||
|
case QueueType::MessageColorCallstack:
|
||||||
|
{
|
||||||
|
ThreadCtxCheckSerial( messageColorFatThread );
|
||||||
|
ptr = MemRead<uint64_t>( &item->messageColorFat.text );
|
||||||
|
uint16_t size = MemRead<uint16_t>( &item->messageColorFat.size );
|
||||||
|
SendSingleString( (const char*)ptr, size );
|
||||||
|
tracy_free_fast( (void*)ptr );
|
||||||
|
break;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
assert( false );
|
assert( false );
|
||||||
@ -2454,6 +2474,18 @@ Profiler::DequeueStatus Profiler::DequeueSerial()
|
|||||||
ThreadCtxCheckSerial( zoneValidationThread );
|
ThreadCtxCheckSerial( zoneValidationThread );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case QueueType::MessageLiteral:
|
||||||
|
case QueueType::MessageLiteralCallstack:
|
||||||
|
{
|
||||||
|
ThreadCtxCheckSerial( messageLiteralThread );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case QueueType::MessageLiteralColor:
|
||||||
|
case QueueType::MessageLiteralColorCallstack:
|
||||||
|
{
|
||||||
|
ThreadCtxCheckSerial( messageColorLiteralThread );
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -318,13 +318,14 @@ public:
|
|||||||
tracy::GetProfiler().SendCallstack( callstack );
|
tracy::GetProfiler().SendCallstack( callstack );
|
||||||
}
|
}
|
||||||
|
|
||||||
TracyLfqPrepare( callstack == 0 ? QueueType::Message : QueueType::MessageCallstack );
|
|
||||||
auto ptr = (char*)tracy_malloc( size );
|
auto ptr = (char*)tracy_malloc( size );
|
||||||
memcpy( ptr, txt, size );
|
memcpy( ptr, txt, size );
|
||||||
|
|
||||||
|
TracyQueuePrepare( callstack == 0 ? QueueType::Message : QueueType::MessageCallstack );
|
||||||
MemWrite( &item->messageFat.time, GetTime() );
|
MemWrite( &item->messageFat.time, GetTime() );
|
||||||
MemWrite( &item->messageFat.text, (uint64_t)ptr );
|
MemWrite( &item->messageFat.text, (uint64_t)ptr );
|
||||||
MemWrite( &item->messageFat.size, (uint16_t)size );
|
MemWrite( &item->messageFat.size, (uint16_t)size );
|
||||||
TracyLfqCommit;
|
TracyQueueCommit( messageFatThread );
|
||||||
}
|
}
|
||||||
|
|
||||||
static tracy_force_inline void Message( const char* txt, int callstack )
|
static tracy_force_inline void Message( const char* txt, int callstack )
|
||||||
@ -337,10 +338,10 @@ public:
|
|||||||
tracy::GetProfiler().SendCallstack( callstack );
|
tracy::GetProfiler().SendCallstack( callstack );
|
||||||
}
|
}
|
||||||
|
|
||||||
TracyLfqPrepare( callstack == 0 ? QueueType::MessageLiteral : QueueType::MessageLiteralCallstack );
|
TracyQueuePrepare( callstack == 0 ? QueueType::MessageLiteral : QueueType::MessageLiteralCallstack );
|
||||||
MemWrite( &item->messageLiteral.time, GetTime() );
|
MemWrite( &item->messageLiteral.time, GetTime() );
|
||||||
MemWrite( &item->messageLiteral.text, (uint64_t)txt );
|
MemWrite( &item->messageLiteral.text, (uint64_t)txt );
|
||||||
TracyLfqCommit;
|
TracyQueueCommit( messageLiteralThread );
|
||||||
}
|
}
|
||||||
|
|
||||||
static tracy_force_inline void MessageColor( const char* txt, size_t size, uint32_t color, int callstack )
|
static tracy_force_inline void MessageColor( const char* txt, size_t size, uint32_t color, int callstack )
|
||||||
@ -354,16 +355,17 @@ public:
|
|||||||
tracy::GetProfiler().SendCallstack( callstack );
|
tracy::GetProfiler().SendCallstack( callstack );
|
||||||
}
|
}
|
||||||
|
|
||||||
TracyLfqPrepare( callstack == 0 ? QueueType::MessageColor : QueueType::MessageColorCallstack );
|
|
||||||
auto ptr = (char*)tracy_malloc( size );
|
auto ptr = (char*)tracy_malloc( size );
|
||||||
memcpy( ptr, txt, size );
|
memcpy( ptr, txt, size );
|
||||||
|
|
||||||
|
TracyQueuePrepare( callstack == 0 ? QueueType::MessageColor : QueueType::MessageColorCallstack );
|
||||||
MemWrite( &item->messageColorFat.time, GetTime() );
|
MemWrite( &item->messageColorFat.time, GetTime() );
|
||||||
MemWrite( &item->messageColorFat.text, (uint64_t)ptr );
|
MemWrite( &item->messageColorFat.text, (uint64_t)ptr );
|
||||||
MemWrite( &item->messageColorFat.r, uint8_t( ( color ) & 0xFF ) );
|
MemWrite( &item->messageColorFat.r, uint8_t( ( color ) & 0xFF ) );
|
||||||
MemWrite( &item->messageColorFat.g, uint8_t( ( color >> 8 ) & 0xFF ) );
|
MemWrite( &item->messageColorFat.g, uint8_t( ( color >> 8 ) & 0xFF ) );
|
||||||
MemWrite( &item->messageColorFat.b, uint8_t( ( color >> 16 ) & 0xFF ) );
|
MemWrite( &item->messageColorFat.b, uint8_t( ( color >> 16 ) & 0xFF ) );
|
||||||
MemWrite( &item->messageColorFat.size, (uint16_t)size );
|
MemWrite( &item->messageColorFat.size, (uint16_t)size );
|
||||||
TracyLfqCommit;
|
TracyQueueCommit( messageColorFatThread );
|
||||||
}
|
}
|
||||||
|
|
||||||
static tracy_force_inline void MessageColor( const char* txt, uint32_t color, int callstack )
|
static tracy_force_inline void MessageColor( const char* txt, uint32_t color, int callstack )
|
||||||
@ -376,13 +378,13 @@ public:
|
|||||||
tracy::GetProfiler().SendCallstack( callstack );
|
tracy::GetProfiler().SendCallstack( callstack );
|
||||||
}
|
}
|
||||||
|
|
||||||
TracyLfqPrepare( callstack == 0 ? QueueType::MessageLiteralColor : QueueType::MessageLiteralColorCallstack );
|
TracyQueuePrepare( callstack == 0 ? QueueType::MessageLiteralColor : QueueType::MessageLiteralColorCallstack );
|
||||||
MemWrite( &item->messageColorLiteral.time, GetTime() );
|
MemWrite( &item->messageColorLiteral.time, GetTime() );
|
||||||
MemWrite( &item->messageColorLiteral.text, (uint64_t)txt );
|
MemWrite( &item->messageColorLiteral.text, (uint64_t)txt );
|
||||||
MemWrite( &item->messageColorLiteral.r, uint8_t( ( color ) & 0xFF ) );
|
MemWrite( &item->messageColorLiteral.r, uint8_t( ( color ) & 0xFF ) );
|
||||||
MemWrite( &item->messageColorLiteral.g, uint8_t( ( color >> 8 ) & 0xFF ) );
|
MemWrite( &item->messageColorLiteral.g, uint8_t( ( color >> 8 ) & 0xFF ) );
|
||||||
MemWrite( &item->messageColorLiteral.b, uint8_t( ( color >> 16 ) & 0xFF ) );
|
MemWrite( &item->messageColorLiteral.b, uint8_t( ( color >> 16 ) & 0xFF ) );
|
||||||
TracyLfqCommit;
|
TracyQueueCommit( messageColorLiteralThread );
|
||||||
}
|
}
|
||||||
|
|
||||||
static tracy_force_inline void MessageAppInfo( const char* txt, size_t size )
|
static tracy_force_inline void MessageAppInfo( const char* txt, size_t size )
|
||||||
|
@ -317,23 +317,43 @@ struct QueueMessageLiteral : public QueueMessage
|
|||||||
uint64_t text; // ptr
|
uint64_t text; // ptr
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct QueueMessageLiteralThread : public QueueMessageLiteral
|
||||||
|
{
|
||||||
|
uint32_t thread;
|
||||||
|
};
|
||||||
|
|
||||||
struct QueueMessageColorLiteral : public QueueMessageColor
|
struct QueueMessageColorLiteral : public QueueMessageColor
|
||||||
{
|
{
|
||||||
uint64_t text; // ptr
|
uint64_t text; // ptr
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct QueueMessageColorLiteralThread : public QueueMessageColorLiteral
|
||||||
|
{
|
||||||
|
uint32_t thread;
|
||||||
|
};
|
||||||
|
|
||||||
struct QueueMessageFat : public QueueMessage
|
struct QueueMessageFat : public QueueMessage
|
||||||
{
|
{
|
||||||
uint64_t text; // ptr
|
uint64_t text; // ptr
|
||||||
uint16_t size;
|
uint16_t size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct QueueMessageFatThread : public QueueMessageFat
|
||||||
|
{
|
||||||
|
uint32_t thread;
|
||||||
|
};
|
||||||
|
|
||||||
struct QueueMessageColorFat : public QueueMessageColor
|
struct QueueMessageColorFat : public QueueMessageColor
|
||||||
{
|
{
|
||||||
uint64_t text; // ptr
|
uint64_t text; // ptr
|
||||||
uint16_t size;
|
uint16_t size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct QueueMessageColorFatThread : public QueueMessageColorFat
|
||||||
|
{
|
||||||
|
uint32_t thread;
|
||||||
|
};
|
||||||
|
|
||||||
// Don't change order, only add new entries at the end, this is also used on trace dumps!
|
// Don't change order, only add new entries at the end, this is also used on trace dumps!
|
||||||
enum class GpuContextType : uint8_t
|
enum class GpuContextType : uint8_t
|
||||||
{
|
{
|
||||||
@ -589,9 +609,13 @@ struct QueueItem
|
|||||||
QueueMessage message;
|
QueueMessage message;
|
||||||
QueueMessageColor messageColor;
|
QueueMessageColor messageColor;
|
||||||
QueueMessageLiteral messageLiteral;
|
QueueMessageLiteral messageLiteral;
|
||||||
|
QueueMessageLiteralThread messageLiteralThread;
|
||||||
QueueMessageColorLiteral messageColorLiteral;
|
QueueMessageColorLiteral messageColorLiteral;
|
||||||
|
QueueMessageColorLiteralThread messageColorLiteralThread;
|
||||||
QueueMessageFat messageFat;
|
QueueMessageFat messageFat;
|
||||||
|
QueueMessageFatThread messageFatThread;
|
||||||
QueueMessageColorFat messageColorFat;
|
QueueMessageColorFat messageColorFat;
|
||||||
|
QueueMessageColorFatThread messageColorFatThread;
|
||||||
QueueGpuNewContext gpuNewContext;
|
QueueGpuNewContext gpuNewContext;
|
||||||
QueueGpuZoneBegin gpuZoneBegin;
|
QueueGpuZoneBegin gpuZoneBegin;
|
||||||
QueueGpuZoneBeginLean gpuZoneBeginLean;
|
QueueGpuZoneBeginLean gpuZoneBeginLean;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user