Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorBartosz Taudul <wolf@nereid.pl>2021-11-02 01:56:19 +0300
committerBartosz Taudul <wolf@nereid.pl>2021-11-02 02:11:09 +0300
commit229d547e91bceb0a912960af09e40fab1b987a5c (patch)
tree2834d1278d3dd10e6eff424b16bf57c85e8eb97a /common
parent8b15cd049cbe393cec94296562d2dc82b27a9f80 (diff)
Add fiber support on client side.
Diffstat (limited to 'common')
-rw-r--r--common/TracyProtocol.hpp2
-rw-r--r--common/TracyQueue.hpp21
2 files changed, 21 insertions, 2 deletions
diff --git a/common/TracyProtocol.hpp b/common/TracyProtocol.hpp
index 5497c228..e773c7f7 100644
--- a/common/TracyProtocol.hpp
+++ b/common/TracyProtocol.hpp
@@ -9,7 +9,7 @@ namespace tracy
constexpr unsigned Lz4CompressBound( unsigned isize ) { return isize + ( isize / 255 ) + 16; }
-enum : uint32_t { ProtocolVersion = 51 };
+enum : uint32_t { ProtocolVersion = 52 };
enum : uint16_t { BroadcastVersion = 2 };
using lz4sz_t = uint32_t;
diff --git a/common/TracyQueue.hpp b/common/TracyQueue.hpp
index f1db518b..3e45efff 100644
--- a/common/TracyQueue.hpp
+++ b/common/TracyQueue.hpp
@@ -59,6 +59,8 @@ enum class QueueType : uint8_t
SymbolInformation,
CodeInformation,
ExternalNameMetadata,
+ FiberEnter,
+ FiberLeave,
Terminate,
KeepAlive,
ThreadContext,
@@ -236,6 +238,19 @@ struct QueueLockAnnounce
LockType type;
};
+struct QueueFiberEnter
+{
+ int64_t time;
+ uint64_t fiber; // ptr
+ uint32_t thread;
+};
+
+struct QueueFiberLeave
+{
+ int64_t time;
+ uint32_t thread;
+};
+
struct QueueLockTerminate
{
uint32_t id;
@@ -692,6 +707,8 @@ struct QueueItem
QueueParamSetup paramSetup;
QueueCpuTopology cpuTopology;
QueueExternalNameMetadata externalNameMetadata;
+ QueueFiberEnter fiberEnter;
+ QueueFiberLeave fiberLeave;
};
};
#pragma pack()
@@ -750,7 +767,9 @@ static constexpr size_t QueueDataSize[] = {
sizeof( QueueHeader ) + sizeof( QueueCallstackFrameSize ),
sizeof( QueueHeader ) + sizeof( QueueSymbolInformation ),
sizeof( QueueHeader ) + sizeof( QueueCodeInformation ),
- sizeof( QueueHeader), // ExternalNameMetadata - not for wire transfer
+ sizeof( QueueHeader ), // ExternalNameMetadata - not for wire transfer
+ sizeof( QueueHeader ) + sizeof( QueueFiberEnter ),
+ sizeof( QueueHeader ) + sizeof( QueueFiberLeave ),
// above items must be first
sizeof( QueueHeader ), // terminate
sizeof( QueueHeader ), // keep alive