1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

139 Commits

Author SHA1 Message Date
Bartosz Taudul 3e93c615f7 Fix UB, lose type safety. 2018-04-03 16:45:55 +02:00
Bartosz Taudul 3b03e849f0 Harden client code against unaligned memory access.
There shouldn't be any changes in generated code on modern
architectures, as the memcpy will be reduced to a store/load operation
identical to the one generated with plain struct member access.

GetTime( cpu ) needs special handling, as the MSVC intrinsic for rdtscp
can't store cpu identifier in a register. Using intermediate variable
would cause store to stack, read from stack, store to the destination
address. Since rdtscp is only available on x86, which handles unaligned
stores without any problems, we can have one place with direct struct
member access.
2018-03-31 14:15:04 +02:00
Bartosz Taudul 7300c2e46e Fix TRACY_NO_EXIT behavior.
Terminate event could be the first event that was sent. In such case
server immediately closed the connection, as there was no outstanding
data to receive. Fix by sending all data in the queue before sending
terminate event.
2018-01-11 13:45:13 +01:00
Bartosz Taudul f67465e784 Reduce timer calibration delay to 200 ms. 2017-11-25 13:34:26 +01:00
Bartosz Taudul 48da593ab2 Increase calibration time to half a second. 2017-11-24 01:43:35 +01:00
Bartosz Taudul c431747f06 Favor transfer of zones without predicted payload. 2017-11-22 02:28:12 +01:00
Bartosz Taudul 630db7112a Leaner iteration in Profiler::Dequeue(). 2017-11-22 02:07:23 +01:00
Bartosz Taudul 2f669aea41 Workaround gcc issues. 2017-11-15 10:56:27 +01:00
Bartosz Taudul c43eb29ce0 Don't send source location pointer in query reply.
Since reply order is the same as the query order, the server already
knows what source location it receives. This observation allows placing
zone name into the source location struct.
2017-11-14 23:06:45 +01:00
Bartosz Taudul 5c872b2137 Simplify GPU context handling. 2017-11-14 00:48:26 +01:00
Bartosz Taudul 3c00ce0958 GPU context registration. 2017-11-11 19:44:09 +01:00
Bartosz Taudul 81735aea2f Support for setting zone names in lua. 2017-11-11 17:56:41 +01:00
Bartosz Taudul 59ec40c045 Preemptive transfer of source location payload. 2017-11-11 15:59:30 +01:00
Bartosz Taudul 7f3b8f4647 Preemptive message text delivery. 2017-11-11 15:41:21 +01:00
Bartosz Taudul 76e11174dc Preemptive sending of custom strings. 2017-11-11 15:22:55 +01:00
Bartosz Taudul c2797a4cc7 Data packets can't cross data buffer boundary. 2017-11-11 15:08:03 +01:00
Bartosz Taudul 49bce256bc Fix type mismatch. 2017-11-11 14:35:46 +01:00
Bartosz Taudul 0d15d45c3a Don't send source location through the queue. 2017-11-11 14:24:22 +01:00
Bartosz Taudul 065964b216 Send data before sleeping during shutdown. 2017-11-11 14:23:55 +01:00
Bartosz Taudul fc4e31bb8f Wait for send buffer to be full before sending data. 2017-11-11 14:16:37 +01:00
Bartosz Taudul fb46b3cf24 Restore process name retrieval on cygwin. 2017-11-10 19:46:31 +01:00
Bartosz Taudul f6af913fd3 Remove ability to disable LZ4 compression. 2017-11-10 17:34:11 +01:00
Bartosz Taudul bc77aa8d26 Source location payload transfer. No storage yet. 2017-11-05 16:46:00 +01:00
Bartosz Taudul 3659afac2a Move another big buffer out of stack. 2017-11-02 17:37:10 +01:00
Bartosz Taudul cea7cdd716 Don't create big buffers on stack. 2017-11-02 12:58:38 +01:00
Bartosz Taudul cf3d8eb810 Manual collection of thread names on android. 2017-10-30 20:45:00 +01:00
Bartosz Taudul 8f280b147b Getting program name on android. 2017-10-30 14:59:05 +01:00
Bartosz Taudul a220043114 Add no-cpu GetTime() variant.
In this version the address of cpu output variable is const, so there's
no stack address calculation involved.
2017-10-29 16:12:16 +01:00
Bartosz Taudul 03289175ab Lock counter also must be initialized early. 2017-10-24 22:02:49 +02:00
Bartosz Taudul ad338a7cfd Fix message literals. 2017-10-21 12:39:26 +02:00
Bartosz Taudul 1e645665fe Initialize rpmalloc in profiler worker thread.
Thread local variables on gcc are apparently not initialized on thread
startup, but on first access to thread local variables block. Previously
it was working, because s_token was accessed before any rpmalloc
allocation could be performed. Now the first rpmalloc allocation is the
Socket class, and rpmalloc is not initialized there, as there was no
thread local access yet.
2017-10-18 23:30:54 +02:00
Bartosz Taudul 9c4316879c Add TRACY_NO_EXIT macro. 2017-10-18 20:01:12 +02:00
Bartosz Taudul 51013dc0e6 Manual allocation of socket memory. 2017-10-18 19:50:28 +02:00
Bartosz Taudul fc94378e0c Move TracyAlloc.hpp to common. Use rpmalloc only if TRACY_ENABLE. 2017-10-18 19:50:28 +02:00
Bartosz Taudul c5ea9c744c Do not disable lz4 in debug builds. 2017-10-18 19:50:28 +02:00
Bartosz Taudul 6a2cbe2842 Rename DISABLE_LZ4 to TRACY_DISABLE_LZ4. 2017-10-18 19:50:22 +02:00
Bartosz Taudul 7c47edc64f Terminate connection handshake. 2017-10-18 18:48:51 +02:00
Bartosz Taudul d942b7edf1 Don't exit until all data is sent. 2017-10-17 22:02:47 +02:00
Bartosz Taudul 652dccd163 Also no need to construct more than one welcome message. 2017-10-17 21:55:40 +02:00
Bartosz Taudul 5421164f33 No need to get process name more than once. 2017-10-17 21:53:09 +02:00
Bartosz Taudul 1e3476cf36 Transfer profiler initialization time. 2017-10-17 01:10:38 +02:00
Bartosz Taudul 51f5ae4796 More precise profiler init end time measurement. 2017-10-17 01:07:54 +02:00
Bartosz Taudul 0ed789825a Measure time of initialization start. 2017-10-17 01:07:34 +02:00
Bartosz Taudul 866081bf29 Initialize tracy before anything else. 2017-10-17 00:36:15 +02:00
Bartosz Taudul 9d01b508ed One more type cast. 2017-10-17 00:25:32 +02:00
Bartosz Taudul 8a6e4d2971 Change TRACY_DISABLE to TRACY_ENABLE.
By default tracy is now disabled.
2017-10-16 21:34:39 +02:00
Bartosz Taudul e04bd05606 Always use ShouldExit() to determine if worker should exit. 2017-10-16 21:21:42 +02:00
Bartosz Taudul 9f28205548 Use custom threading wrapper instead of std::thread.
std::thread may perform memory allocation when a thread is created (it
does so on MSVC). Tracy heap is managed by its own allocator and this
changes prevents accessing application heap.
2017-10-16 21:17:58 +02:00
Bartosz Taudul 31fc2335dd Silence some type mismatch warnings. 2017-10-16 21:17:58 +02:00
Bartosz Taudul 5b9fcddfb3 String literal message transfer. 2017-10-15 13:06:49 +02:00