Commit Graph
71 Commits
Author SHA1 Message Date
Bartosz Taudul d2c866377e Extract unique string discovery from worker.
This class is responsible for handling data sets that should be grouped
together, but which may come with different name pointers.

It is a generalization of the plot merging functionality.
2018-08-04 16:25:11 +02:00
Bartosz Taudul a4e877a89f Add user manual button. 2018-08-04 01:15:56 +02:00
Bartosz Taudul 78e14b4bee Skip rendering if viewer window is minimized. 2018-07-29 22:11:47 +02:00
Bartosz Taudul 43255b01fa Reduce viewer frame rate when it doesn't have focus. 2018-07-29 22:11:24 +02:00
Bartosz Taudul 18896044c4 Display explicit names of loaded things. 2018-07-29 16:56:46 +02:00
Bartosz Taudul 5b9ad4bcbf Expose tracy version in UI. 2018-07-29 14:24:24 +02:00
Bartosz Taudul 12b90d1630 Move tracy version to a separate header. 2018-07-29 14:20:44 +02:00
Bartosz Taudul 4741dab833 Track sub progress. 2018-07-28 19:05:01 +02:00
Bartosz Taudul a14238c199 Add sub progress display. 2018-07-28 18:56:52 +02:00
Bartosz Taudul 3a401106b0 Display total progress also as text. 2018-07-28 18:50:22 +02:00
Bartosz Taudul a7e48bd2a9 Loading popup is not resizable. 2018-07-28 18:48:45 +02:00
Bartosz Taudul 71db7c431f Load main trace on a thread. 2018-07-28 18:17:56 +02:00
Bartosz Taudul cd6e3ab2c9 Trace loading progress popup. 2018-07-28 18:07:55 +02:00
Bartosz Taudul 68e40ad250 Unix build can use extended font. 2018-07-28 01:40:48 +02:00
Bartosz Taudul 63b383f7be Add missing TRACY_FILESELECTOR define to unix build. 2018-07-28 01:38:08 +02:00
Bartosz Taudul a54ff1f56d Use 'μ' instead of 'u' to indicate micro. 2018-07-28 01:06:36 +02:00
Bartosz Taudul b7ec7f6819 Embed Arimo font. 2018-07-28 01:03:26 +02:00
Rokas Kupstys 5c75fe292f Fix msvc builds when required c++ standard version is set to lower than c++17.
Also use latest available c++ standard which allows using older VS versions that only support c++14.
2018-07-17 18:29:48 +03:00
Bartosz Taudul 24f7be3f51 Add homepage and tutorial video buttons. 2018-07-15 20:10:41 +02:00
Bartosz Taudul 2e39d18e94 Web page opening functionality. 2018-07-15 20:10:34 +02:00
Bartosz Taudul 561d2dc360 Use the fastest mutex available.
The selection is based on the following test results:

MSVC:
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 11.641 ns/iter
     2 thread contention: 141.559 ns/iter
     3 thread contention: 242.733 ns/iter
     4 thread contention: 409.807 ns/iter
     5 thread contention: 561.544 ns/iter
     6 thread contention: 785.845 ns/iter
=> std::mutex
     No contention: 19.190 ns/iter
     2 thread contention: 39.305 ns/iter
     3 thread contention: 58.999 ns/iter
     4 thread contention: 59.532 ns/iter
     5 thread contention: 103.539 ns/iter
     6 thread contention: 110.314 ns/iter
=> std::shared_timed_mutex
     No contention: 45.487 ns/iter
     2 thread contention: 96.351 ns/iter
     3 thread contention: 142.871 ns/iter
     4 thread contention: 184.999 ns/iter
     5 thread contention: 336.608 ns/iter
     6 thread contention: 542.551 ns/iter
=> std::shared_mutex
     No contention: 10.861 ns/iter
     2 thread contention: 17.495 ns/iter
     3 thread contention: 31.126 ns/iter
     4 thread contention: 40.468 ns/iter
     5 thread contention: 15.677 ns/iter
     6 thread contention: 64.505 ns/iter

Cygwin (clang):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 11.536 ns/iter
     2 thread contention: 121.082 ns/iter
     3 thread contention: 396.430 ns/iter
     4 thread contention: 672.555 ns/iter
     5 thread contention: 1327.761 ns/iter
     6 thread contention: 14151.955 ns/iter
=> std::mutex
     No contention: 62.583 ns/iter
     2 thread contention: 3990.464 ns/iter
     3 thread contention: 7161.189 ns/iter
     4 thread contention: 9870.820 ns/iter
     5 thread contention: 12355.178 ns/iter
     6 thread contention: 14694.903 ns/iter
=> std::shared_timed_mutex
     No contention: 91.687 ns/iter
     2 thread contention: 1115.037 ns/iter
     3 thread contention: 4183.792 ns/iter
     4 thread contention: 15283.491 ns/iter
     5 thread contention: 27812.477 ns/iter
     6 thread contention: 35028.140 ns/iter
=> std::shared_mutex
     No contention: 91.764 ns/iter
     2 thread contention: 1051.826 ns/iter
     3 thread contention: 5574.720 ns/iter
     4 thread contention: 15721.416 ns/iter
     5 thread contention: 27721.487 ns/iter
     6 thread contention: 35420.404 ns/iter

Linux (x64):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 13.487 ns/iter
     2 thread contention: 210.317 ns/iter
     3 thread contention: 430.855 ns/iter
     4 thread contention: 510.533 ns/iter
     5 thread contention: 1003.609 ns/iter
     6 thread contention: 1787.683 ns/iter
=> std::mutex
     No contention: 12.403 ns/iter
     2 thread contention: 157.122 ns/iter
     3 thread contention: 186.791 ns/iter
     4 thread contention: 265.073 ns/iter
     5 thread contention: 283.778 ns/iter
     6 thread contention: 270.687 ns/iter
=> std::shared_timed_mutex
     No contention: 21.509 ns/iter
     2 thread contention: 150.179 ns/iter
     3 thread contention: 256.574 ns/iter
     4 thread contention: 415.351 ns/iter
     5 thread contention: 611.532 ns/iter
     6 thread contention: 944.695 ns/iter
=> std::shared_mutex
     No contention: 20.805 ns/iter
     2 thread contention: 157.034 ns/iter
     3 thread contention: 244.025 ns/iter
     4 thread contention: 406.269 ns/iter
     5 thread contention: 387.985 ns/iter
     6 thread contention: 468.550 ns/iter

Linux (arm64):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 20.891 ns/iter
     2 thread contention: 211.037 ns/iter
     3 thread contention: 409.962 ns/iter
     4 thread contention: 657.441 ns/iter
     5 thread contention: 828.405 ns/iter
     6 thread contention: 1131.827 ns/iter
=> std::mutex
     No contention: 50.884 ns/iter
     2 thread contention: 103.620 ns/iter
     3 thread contention: 332.429 ns/iter
     4 thread contention: 620.802 ns/iter
     5 thread contention: 783.943 ns/iter
     6 thread contention: 834.002 ns/iter
=> std::shared_timed_mutex
     No contention: 64.948 ns/iter
     2 thread contention: 173.191 ns/iter
     3 thread contention: 490.352 ns/iter
     4 thread contention: 660.668 ns/iter
     5 thread contention: 1014.546 ns/iter
     6 thread contention: 1451.553 ns/iter
=> std::shared_mutex
     No contention: 64.521 ns/iter
     2 thread contention: 195.222 ns/iter
     3 thread contention: 490.819 ns/iter
     4 thread contention: 654.786 ns/iter
     5 thread contention: 955.759 ns/iter
     6 thread contention: 1282.544 ns/iter
2018-07-14 00:39:01 +02:00
Arvid Gerstmann 34533ad4f1 Dynamically import GetDpiForSystem, to support older Windows versions 2018-07-13 23:41:38 +02:00
Arvid Gerstmann 3e012cb762 Compile standalone on macOS 2018-07-13 19:22:09 +02:00
Bartosz Taudul ba68df329f Viewer is now system DPI aware on windows. 2018-06-29 00:31:05 +02:00
Bartosz Taudul 4c16aa9b96 Store build objects in separate directories. 2018-06-27 20:31:17 +02:00
Bartosz Taudul 87467a472c Add variable sized const array. 2018-06-19 21:16:02 +02:00
Bartosz Taudul 26cc9d8547 Enable fast floating point model. 2018-06-06 01:53:25 +02:00
Bartosz Taudul 249cd4783c Use C++17 in server. 2018-05-08 01:23:24 +02:00
Bartosz Taudul e565f5cb74 Enable modern diagnostics format. 2018-05-08 01:17:53 +02:00
Bartosz Taudul 4c521ce92a Loaded traces may be unloaded. 2018-04-30 01:16:08 +02:00
Bartosz Taudul 28380f2d25 Move bad version dialogs to a separate file. 2018-04-21 23:19:48 +02:00
Bartosz Taudul ac73b00540 Prevent nasal demons from appearing. 2018-04-21 19:37:55 +02:00
Bartosz Taudul 3b6b67b7ee Display a dialog when user tries to open invalid file. 2018-04-21 15:00:54 +02:00
Bartosz Taudul 764792d8db Try to not crash when opening invalid files.
Tracy will now perform a number of checks when trying to read a dump
file:
1. The file must have at least 4 bytes of data.
2. There should be a 4 byte header to indicate the file was saved by
   tracy. This is a breaking change in file format.
3. Old header-less files are still supported, but there's a new check
   for data validity. The first 4 bytes of file (as an uint32) must be
   less or equal to max LZ4 data packet size. This requires the first
   two bytes to be 00 00 or 00 01, which should catch most invalid
   files.
2018-04-21 14:53:40 +02:00
Bartosz Taudul fefcbc6c35 Handle opening unsupported files. 2018-04-21 14:31:33 +02:00
Bartosz Taudul 645f312166 Enable imgui frame rounding. 2018-04-21 14:16:49 +02:00
Bartosz Taudul 07201a19ad Update imgui to 1.60. 2018-04-14 15:12:16 +02:00
Bartosz Taudul 16a98c8c17 Move benaphore to common directory. 2018-04-01 18:59:55 +02:00
Bartosz Taudul 685432a85f Add unaligned read/write helpers. 2018-03-31 14:15:04 +02:00
Bartosz Taudul e69d71cd4d Open trace passed as standalone server argument. 2018-03-24 22:20:06 +01:00
Bartosz Taudul e64e7ce3f1 Add TracyWorker.hpp to msvc project. 2018-02-23 15:13:30 +01:00
Bartosz Szreder 9e3f18a62a Split data handling code from the view. 2018-02-21 16:41:37 +01:00
Bartosz Taudul 142f94cc33 Small style adjustments. 2018-01-13 14:08:14 +01:00
Bartosz Taudul e5317d9e40 Use dark style. 2018-01-13 13:59:16 +01:00
Bartosz Taudul 961a907e09 Remove obsolete window flag. 2018-01-13 13:56:02 +01:00
Bartosz Taudul 96cd782011 Enable AVX2 code generation. 2017-12-08 23:55:16 +01:00
Bartosz Taudul 0da09bc62b Use pdqsort. 2017-12-08 23:14:55 +01:00
Bartosz Taudul 9b0b3c99e3 Disable permissive mode. 2017-12-05 20:51:16 +01:00
Bartosz Taudul 74cd22e655 Add tracy vector visualizer. 2017-11-20 15:57:40 +01:00
Bartosz Taudul 519d40be69 Add TracyForceInline.hpp to msvc project. 2017-11-19 17:27:00 +01:00