mirror of
https://github.com/wolfpld/tracy.git
synced 2026-10-30 12:35:26 +00:00
Add zone end messages with 32 and 16 byte time deltas.
Change in test application:
compressed data: 130 Mpbps -> 105 Mbps
uncompressed: 830 Mbps -> 740 Mbps
This commit is contained in:
+26
-1
@@ -4510,7 +4510,13 @@ bool Worker::Process( const QueueItem& ev )
|
||||
ProcessZoneBeginAllocSrcLocCallstack( ev.zoneBeginLean );
|
||||
break;
|
||||
case QueueType::ZoneEnd:
|
||||
ProcessZoneEnd( ev.zoneEnd );
|
||||
ProcessZoneEnd64( ev.zoneEnd );
|
||||
break;
|
||||
case QueueType::ZoneEnd32:
|
||||
ProcessZoneEnd32( ev.zoneEnd32 );
|
||||
break;
|
||||
case QueueType::ZoneEnd16:
|
||||
ProcessZoneEnd16( ev.zoneEnd16 );
|
||||
break;
|
||||
case QueueType::ZoneValidation:
|
||||
ProcessZoneValidation( ev.zoneValidation );
|
||||
@@ -5009,6 +5015,25 @@ void Worker::ProcessZoneEnd( const QueueZoneEnd& ev )
|
||||
#endif
|
||||
}
|
||||
|
||||
void Worker::ProcessZoneEnd64( const QueueZoneEnd& ev )
|
||||
{
|
||||
QueueZoneEnd unpack = ev;
|
||||
if( ev.time >= 0 ) unpack.time += ProtocolOffset32Bit;
|
||||
ProcessZoneEnd( unpack );
|
||||
}
|
||||
|
||||
void Worker::ProcessZoneEnd32( const QueueZoneEnd32& ev )
|
||||
{
|
||||
QueueZoneEnd unpack = { .time = int64_t( ev.time + ProtocolOffset16Bit ) };
|
||||
ProcessZoneEnd( unpack );
|
||||
}
|
||||
|
||||
void Worker::ProcessZoneEnd16( const QueueZoneEnd16& ev )
|
||||
{
|
||||
QueueZoneEnd unpack = { .time = ev.time };
|
||||
ProcessZoneEnd( unpack );
|
||||
}
|
||||
|
||||
void Worker::ZoneStackFailure( uint64_t thread, const ZoneEvent* ev )
|
||||
{
|
||||
m_failure = Failure::ZoneStack;
|
||||
|
||||
Reference in New Issue
Block a user