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
685432a85f
Add unaligned read/write helpers.
2018-03-31 14:15:04 +02:00
Bartosz Taudul
56bd01dfd1
Don't copy thread name needlessly.
2018-03-31 01:38:57 +02:00
Bartosz Taudul
48e82ea135
Workaround pthreads thread name limit.
2018-03-31 01:22:21 +02:00
Bartosz Taudul
347c74cec3
Cosmetics.
2018-03-31 01:06:35 +02:00
Bartosz Taudul
813e265bc3
Initialize rpmalloc in SetThreadName().
...
There's no guarantee that rpmalloc will be initialized when the thread
calls SetThreadName, due to thread_local storage initialization rules.
2018-03-30 14:39:25 +02:00
Bartosz Taudul
7d6f5b875d
Bump lz4 to 1.8.1.
2018-03-04 15:23:46 +01:00
Bartosz Szreder
9e3f18a62a
Split data handling code from the view.
2018-02-21 16:41:37 +01:00
Bartosz Taudul
c3a32f9c35
Send lock type in LockWait/LockSharedWait events.
...
This will be needed for proper construction of LockMap on the server, in
case the LockAnnounce message hasn't arrived yet.
2017-12-17 18:30:34 +01:00
Bartosz Taudul
bcf2bf1c5c
Shared lock events (still using old functionality).
2017-12-10 22:04:49 +01:00
Bartosz Taudul
782231b048
Shared lockable skeleton.
2017-12-10 21:49:45 +01:00
Bartosz Taudul
3567d7edd8
Reintroduce lock announce events.
2017-12-10 21:40:48 +01:00
Bartosz Taudul
ab1f93194e
No thread names on emscripten.
2017-11-29 11:11:16 +01:00
Bartosz Taudul
02b3e54943
Provide tracy color list in default client header.
2017-11-25 15:33:10 +01:00
Bartosz Taudul
2f09a2429e
Add X11 color list.
2017-11-25 15:18:04 +01:00
Bartosz Taudul
a515bf8878
Perform GPU to CPU resynchronization on each collect event.
2017-11-25 13:33:57 +01:00
Bartosz Taudul
0100266234
Use consistent names.
2017-11-25 13:14:16 +01:00
Bartosz Taudul
c609c15f95
Acceleration param is always valid.
2017-11-24 01:23:54 +01:00
Bartosz Taudul
0e021bb798
Decrease LZ4 memory usage.
2017-11-23 02:28:33 +01:00
Bartosz Taudul
c431747f06
Favor transfer of zones without predicted payload.
2017-11-22 02:28:12 +01:00
Bartosz Taudul
70ac7d3223
Add no inline specifier.
2017-11-19 17:15:09 +01:00
Bartosz Taudul
a309e71fe1
Move force inline defines to a separate header.
2017-11-19 16:32:38 +01:00
Bartosz Taudul
18f7d8c261
Reorder StringTransfer to enable easier dispatch.
2017-11-19 02:42:04 +01:00
Bartosz Taudul
c251690722
Query OpenGL time stamp accuracy.
2017-11-17 14:07:42 +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
7ebaa46f75
GPU time transfer.
2017-11-11 22:08:47 +01:00
Bartosz Taudul
6fcdb924e8
CPU-side GPU event transfer.
2017-11-11 21:09:48 +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
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
0fb5f012ce
Lua profiling framework. No source location transfer yet.
2017-11-05 15:06:28 +01:00
Bartosz Taudul
3dc7d04ab4
Properly handle connection reset on win32.
2017-11-04 17:19:28 +01:00
Bartosz Taudul
a2f9dc75c7
Set SO_NOSIGPIPE on proper socket.
2017-11-03 11:20:39 +01:00
Bartosz Taudul
f71af873c0
Proper function name.
2017-11-03 11:13:02 +01:00
Bartosz Taudul
7ecc6b54d4
Proper pthread_threadid_np call.
2017-11-03 11:12:17 +01:00
Bartosz Taudul
c7cb89307f
Use proper __APPLE__ macro.
2017-11-03 11:09:31 +01:00
Bartosz Taudul
1d9542ea25
Fix thread ids on osx, iphone.
2017-11-03 10:49:49 +01:00
Bartosz Taudul
7b8747ce21
Collect thread names on osx, iphone.
2017-11-02 13:02:04 +01:00
Bartosz Taudul
3051b8d27c
Don't use rpmalloc directly.
2017-11-02 12:58:38 +01:00
Bartosz Taudul
e31f8c2aed
No sigpipe on think different.
2017-11-02 11:37:10 +01:00
Bartosz Taudul
af39dd4921
Always define noop MSG_NOSIGNAL, if not available in headers.
2017-11-02 11:31:54 +01:00
Bartosz Taudul
391571a2da
Fix android with tracy disabled.
2017-10-31 11:36:43 +01:00
Bartosz Taudul
3aaa718741
Enable thread name collection on cygwin.
...
It was working before, because there was _GNU_SOURCE define injection.
Without this macro defined pthread_[gs]etname_np() functions are not
exposed in the API.
2017-10-30 21:57:45 +01:00
Bartosz Taudul
aa12a3bf94
Missing include.
2017-10-30 21:51:24 +01:00
Bartosz Taudul
cf3d8eb810
Manual collection of thread names on android.
2017-10-30 20:45:00 +01:00
Bartosz Taudul
5cf962e03d
Android has pthread_setname_np, but not getname...
2017-10-30 13:48:52 +01:00
Bartosz Taudul
d21040e3d8
pthread_{get,set}name_np is not standard.
2017-10-28 12:16:52 +02:00
Bartosz Taudul
10e3307512
Unique lz4 header guard.
2017-10-21 15:02:43 +02:00
Bartosz Taudul
ad338a7cfd
Fix message literals.
2017-10-21 12:39:26 +02:00
Bartosz Taudul
f822455832
Increase send buffer size.
2017-10-19 23:48:16 +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
7c47edc64f
Terminate connection handshake.
2017-10-18 18:48:51 +02:00
Bartosz Taudul
1e3476cf36
Transfer profiler initialization time.
2017-10-17 01:10:38 +02:00
Bartosz Taudul
1788408ceb
Allow setting thread name using thread handle.
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
f156cd922b
OpenThread may fail.
2017-10-15 13:26:05 +02:00
Bartosz Taudul
5b9fcddfb3
String literal message transfer.
2017-10-15 13:06:49 +02:00
Bartosz Taudul
fa8030009f
Store messages.
2017-10-14 14:28:04 +02:00
Bartosz Taudul
8c7b60fbe6
Allow sending text messages.
2017-10-14 13:23:13 +02:00
Bartosz Taudul
1aaab3c5e4
Use 32 bits to store lock id.
...
This makes queue item size 32 bytes. Queue operations can now be faster,
because multiplication by 33 is replaced by shift by 5.
2017-10-13 20:05:38 +02:00
Bartosz Taudul
ec789d60e8
Store source location color in 24 bits.
2017-10-13 19:59:18 +02:00
Bartosz Taudul
fe0366c792
Receive plot data.
2017-10-13 03:36:59 +02:00
Bartosz Taudul
cb0011755d
Prevent type conversions.
2017-10-13 02:21:29 +02:00
Bartosz Taudul
f0484b50ca
Plot data transfer.
2017-10-13 02:07:03 +02:00
Bartosz Taudul
737671adbf
Remove lock announce message.
...
This removes problem with static initialization order of mutices vs
tracy.
Lock source location is now transferred in lock wait message.
2017-10-12 20:14:17 +02:00
Bartosz Taudul
cc8b357f09
Avoid excessive stack operations for cpu query.
2017-10-10 23:21:30 +02:00
Bartosz Taudul
75457c1465
Remove +x flag from files.
2017-10-10 21:56:15 +02:00
Bartosz Taudul
dcd89f894c
Add lock marking.
2017-10-06 16:32:32 +02:00
Bartosz Taudul
8c90eab044
Let's not worry about lock memory reuse.
2017-10-04 16:51:51 +02:00
Bartosz Taudul
0011573fa9
Send lock events.
2017-10-04 16:45:46 +02:00
Bartosz Taudul
069354b5dd
Add lock messages.
2017-10-04 16:16:27 +02:00
Bartosz Taudul
b2252de9c8
Send and display program execution date.
2017-10-03 23:26:41 +02:00
Bartosz Taudul
cf07383db8
Send program name in welcome message.
2017-10-03 23:17:58 +02:00
Bartosz Taudul
d1edd30ca6
Zone ids are unnecessary.
2017-10-03 16:41:32 +02:00
Bartosz Taudul
a1abf1f015
Record CPU id.
2017-10-01 19:17:08 +02:00
Bartosz Taudul
efda50acb1
Send timer resolution to server.
2017-09-29 18:32:07 +02:00
Bartosz Taudul
b9aa10913a
Rename internal enum to avoid #define conflicts.
2017-09-28 21:20:33 +02:00
Bartosz Taudul
8c1c395cec
Allow sending custom zone names.
2017-09-28 19:28:24 +02:00
Bartosz Taudul
362a37a705
Add no-payload queue items description.
2017-09-28 19:28:05 +02:00
Bartosz Taudul
d1bbb731fc
Zone text (custom string) transfer.
2017-09-27 02:18:17 +02:00
Bartosz Taudul
e90a86e06e
Store zone color in source location struct.
2017-09-26 18:54:48 +02:00
Bartosz Taudul
7424077d70
Store source location in a single object.
...
Source file, function name and line number are now stored in a const
static container object. This has the following benefits:
- Slightly lighter profiling workload (3 instructions less).
- Profiling queue event size is significantly reduced, by 12 bytes. This
has an effect on all queue event types.
- Source location grouping has now no cost, as it's performed at the
compilation stage. This allows simplification of server code.
The downside is that the full source location resolution is now
performed in two steps, as the server has to query both source location
container and strings contained within. This has almost no real impact
on profiler operation.
2017-09-26 02:39:08 +02:00
Bartosz Taudul
809d98162b
Do the same trick as concurrentqueue.h for GetCurrentThreadId().
2017-09-26 00:46:46 +02:00
Bartosz Taudul
1c4dcf7e52
Use consistent ifdefs.
2017-09-26 00:42:47 +02:00
Bartosz Taudul
11a790a18f
Offload TSC -> time conversion to server.
2017-09-26 00:13:24 +02:00
Bartosz Taudul
519cb8dff3
Allow adding custom colors to zones.
2017-09-25 22:46:14 +02:00
Bartosz Taudul
206305fbd2
Merge TracyThread.hpp to TracySystem.cpp.
...
Keeping threading functions inside a source file prevents poisoning by
including windows.h.
2017-09-25 21:13:59 +02:00
Bartosz Taudul
7683da5f74
Send initial configuration as a single message.
2017-09-24 16:10:28 +02:00
Bartosz Taudul
c0b1846a35
IPV6_V6ONLY needs to be disabled on cygwin too.
2017-09-23 20:20:41 +02:00
Bartosz Taudul
e1a63dbb53
Drop constant merging check.
...
While without constant merging the profiler operates sub-optimally, it's
not that essential to be enabled. And there are problems with it on some
platforms, for example cygwin.
2017-09-23 20:16:42 +02:00
Bartosz Taudul
6c1d014aa3
Fix implementation errors.
2017-09-22 21:48:21 +02:00
Bartosz Taudul
bd622c304a
Limit pthread thread name to 16 bytes.
...
This is a documented pthread restriction. Passing longer strings has no
effect (i.e. thread name is not set).
2017-09-22 21:45:35 +02:00
Bartosz Taudul
5919f5f5e8
No signals on sockets.
2017-09-22 20:02:15 +02:00
Bartosz Taudul
0f99705243
Add thread name report message.
2017-09-22 01:51:56 +02:00