Commit Graph

157 Commits

Author SHA1 Message Date
Bartosz Taudul
55ddb64352 GPU context counter is now 8 bit. 2018-06-22 15:10:23 +02:00
Bartosz Taudul
b6088b908f Callstack capture for ZoneBegin. 2018-06-22 00:56:30 +02:00
Bartosz Taudul
88b1955a5a Filename in callstack frame is not a persistent pointer. 2018-06-20 01:26:05 +02:00
Bartosz Taudul
5177a7b960 Callstack frame transfer. 2018-06-20 01:06:31 +02:00
Bartosz Taudul
0a8cd73db7 Issue predictive callback payload transfer. 2018-06-19 19:31:16 +02:00
Bartosz Taudul
51043ebc47 Callstack payload transfer. 2018-06-19 19:31:16 +02:00
Bartosz Taudul
55e6a4a484 No return status is needed here. 2018-06-19 19:00:57 +02:00
Bartosz Taudul
4a01eb7fc4 Windows callstack inspection plumbing. 2018-06-19 01:17:19 +02:00
Bartosz Taudul
7a23f677dd Vulkan and OpenGL must share idx pool. 2018-06-18 01:10:43 +02:00
Bartosz Taudul
9c11e0fc5b Vulkan tracing. 2018-06-17 18:14:37 +02:00
Bartosz Taudul
5b6d9769af Properly separate HW timer from MSVC rdtscp optimization. 2018-04-27 19:40:47 +02:00
Bartosz Taudul
237aee30a8 Test if HW timer can be used on arm. 2018-04-27 16:58:45 +02:00
Bartosz Taudul
8cc9464082 Use GetTime() in CalibrateTimer(). 2018-04-26 15:29:09 +02:00
Bartosz Taudul
48665cc09b s/TRACY_RDTSCP_SUPPORTED/TRACY_HW_TIMER/ 2018-04-26 15:25:54 +02:00
Bartosz Taudul
459890ef0e Don't hold lock on serial queue during dequeue. 2018-04-14 15:46:11 +02:00
Bartosz Taudul
7c4075c9ce Fix MemRead() call. 2018-04-03 17:57:12 +02:00
Bartosz Taudul
3ea5600900 Fix UB, lose type safety. 2018-04-03 17:51:53 +02:00
Bartosz Taudul
794f199bdc Serial queue dequeuing. 2018-04-01 20:04:35 +02:00
Bartosz Taudul
faeecdd773 Add serial queue to profiler. 2018-04-01 19:53:05 +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