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

2856 Commits

Author SHA1 Message Date
Bartosz Taudul 3208d6c803 Add ARM NEON DXT1 compression timings to manual. 2019-06-28 14:26:00 +02:00
Bartosz Taudul fcb5b4b888 NEON DXT1 compression. 2019-06-28 14:24:16 +02:00
Bartosz Taudul e8d4ba492b Unify shifts. 2019-06-28 13:05:32 +02:00
Bartosz Taudul be4900c822 NEON CheckSolid. 2019-06-28 01:47:04 +02:00
Bartosz Taudul 33486fa3cf Update ARM timings. 2019-06-27 22:47:26 +02:00
Bartosz Taudul 3c066f1527 Simplify code. 2019-06-27 22:40:03 +02:00
Bartosz Taudul 77c6acbc48 Update manual. 2019-06-27 22:30:05 +02:00
Bartosz Taudul 72a0d4c2ab Rest of SSE DXTC compression. 2019-06-27 22:29:44 +02:00
Bartosz Taudul 137b28e110 SSE CheckSolid. 2019-06-27 22:29:44 +02:00
Bartosz Taudul 3d590b6b8c Initialize rpmalloc in compression thread. 2019-06-27 19:14:51 +02:00
Bartosz Taudul 10bcc8c770 Switch to DXT1 textures in profiler utility. 2019-06-27 19:14:51 +02:00
Bartosz Taudul 1939c31165 Experimental DXT1 compressor. 2019-06-27 19:14:51 +02:00
Bartosz Taudul 79eb1b9029 Swap queue and dequeue only if queue has contents. 2019-06-27 13:37:09 +02:00
Bartosz Taudul aa4ce30dff Update manual. 2019-06-27 13:32:57 +02:00
Bartosz Taudul 7dc7ece2bd Add staging area for frame images.
Compressing frame images on a separate thread may cause frame image
arrival before frames are sent. Fix this issue by creating a staging
area in which frame images will wait for frames to arrive.

This probably breaks playback functionality, as non-existent frames may
be queried, but this problem seems to be very hard to find, so let's
ignore it for now.
2019-06-27 13:24:35 +02:00
Bartosz Taudul bb35f9a897 Compress frame images in a separate thread. 2019-06-27 13:24:35 +02:00
Bartosz Taudul 7ebd2162c6 Add ETC1 compression thread. 2019-06-26 22:57:24 +02:00
Bartosz Taudul f565e11976 Store frame images in queue. 2019-06-26 22:52:24 +02:00
Bartosz Taudul fc106079c5 Remove CPU migration highlight for zones. 2019-06-26 21:35:09 +02:00
Bartosz Taudul 3bf23e15bb Update manual. 2019-06-26 21:07:12 +02:00
Bartosz Taudul e3aa0a5c88 Update NEWS. 2019-06-26 21:03:34 +02:00
Bartosz Taudul bc3c375b02 Display crash icon in notification area. 2019-06-26 21:02:04 +02:00
Bartosz Taudul b8794f64be Extract crash tooltip to a separate function. 2019-06-26 21:01:54 +02:00
Bartosz Taudul 281dcf7c1f Cast to proper types. 2019-06-26 19:33:37 +02:00
Bartosz Taudul 8ce41b3543 Proper init order of thread local thread handle. 2019-06-26 19:32:52 +02:00
Bartosz Taudul 64980a1e6f Use async resolv service. 2019-06-26 18:49:21 +02:00
Bartosz Taudul 5e97e83401 Address can't change. 2019-06-26 18:46:51 +02:00
Bartosz Taudul 913c1e57a6 Add threaded resolv service. 2019-06-26 18:46:51 +02:00
Bartosz Taudul a8cb257474 Revert "Resolve client host name using DNS."
This reverts commit 48df667a37.
2019-06-26 17:58:23 +02:00
Bartosz Taudul 0aa0b4ac8a Try lower query counts in out-of-memory situations. 2019-06-26 16:43:56 +02:00
Bartosz Taudul 659631fc06 Make vulkan query count variable. 2019-06-26 16:42:51 +02:00
Bartosz Taudul bc7f2c49c8 GetThreadHandle() might be used by application's code. 2019-06-25 15:44:49 +02:00
Bartosz Taudul 0b656c3469 Update manual. 2019-06-24 21:15:33 +02:00
Bartosz Taudul 9ca254307a Add callstack versions of C API macros. 2019-06-24 21:10:41 +02:00
Bartosz Taudul c749a2e3fe Add C API for plots and messages. 2019-06-24 21:03:39 +02:00
Bartosz Taudul 48e08acb62 Add C API for frame markup. 2019-06-24 21:03:39 +02:00
Bartosz Taudul ee99ce833c Implement memory allocation tracking for C API. 2019-06-24 21:03:39 +02:00
Bartosz Taudul 281477f7f9 Tokens must be retrieved for each enqueue. 2019-06-24 20:12:14 +02:00
Bartosz Taudul 06a41708a7 Move TLS accesses close together. 2019-06-24 19:38:44 +02:00
Bartosz Taudul c4f0965851 Don't use cached thread id to retrieve main thread id. 2019-06-24 19:38:07 +02:00
Bartosz Taudul a56c47a6a0 Store thread handle in a thread local variable.
This saves us a non-inlineable function call. Thread local block is
accessed anyway, since we need to get the token, so we already have the
pointer and don't need to get it a second time (which is done inside
Windows' GetCurrentThreadId()). We also don't need to store the thread
id in ScopedZone anymore, as it was a micro-optimization to save us the
second GetThreadHandle() call.

This change has a measurable effect of reducing enqueue time from ~10 to
~8 ns.

A further optimization would be to completely skip thread handle
retrieval during zone capture and do it instead on retrieval of data
from the queue. Since each thread has its own producer ("token"), the
thread handle should be accessible during the dequeue operation. This is
a much more invasive change, that would require a) modification of the
queue, b) additional processing of dequeued data to inject the thread
handle.
2019-06-24 19:19:47 +02:00
Bartosz Taudul 46b75c5a19 Only enable tracy-internal GetThreadHandle if tracy is enabled. 2019-06-24 19:18:52 +02:00
Bartosz Taudul 79bfac9ca9 Use proper popcnt for gcc/clang (including cygwin). 2019-06-24 18:56:04 +02:00
Bartosz Taudul 9375afdbed All variables must be defined before goto. 2019-06-23 00:36:25 +02:00
Bartosz Taudul 6bdfedead2 Update nfd to ceb75f7abf3. 2019-06-23 00:35:19 +02:00
Bartosz Taudul 815ad7df28 Update manual. 2019-06-23 00:21:56 +02:00
Bartosz Taudul a8dcd5d153 Ctrl-click on frame in frame overview to show playback window. 2019-06-23 00:11:46 +02:00
Bartosz Taudul f125254d14 Cosmetics. 2019-06-23 00:00:16 +02:00
Bartosz Taudul 2f707bd152 Improve frame label drawing logic. 2019-06-22 23:49:30 +02:00
Bartosz Taudul 7217a99dc2 Always show at least one pixel of a frame in frame overview. 2019-06-22 22:48:32 +02:00