Commit graph

491 commits

Author SHA1 Message Date
Jakob Bornecrantz 50783a4c35 u/trace_marker: Add U_TRACE_[BEGIN|END] for greater control of zones/tracks 2022-12-08 00:24:42 +00:00
Jakob Bornecrantz f8d2c095ee u/trace_marker: Ensure ENABLE_TRACE is set before including Tracy headers 2022-12-08 00:24:42 +00:00
Jakob Bornecrantz 3b465b4241 u/windows: Add helper for trying priority or privilege from args 2022-11-25 16:04:20 +00:00
Jakob Bornecrantz 9e57a745b2 u/windows: Add function to raise CPU priority 2022-11-25 16:00:49 +00:00
Jakob Bornecrantz ef77cb08d0 u/windows: Add function to enable privileges on processes
Also add a small helper to add the privilege
SeIncreaseBasePriorityPrivilege, which is needed on
NVIDIA for HIGH and REALTIME priority Vulkan queues.
2022-11-25 15:54:45 +00:00
Jakob Bornecrantz 57820394f4 u/windows: Add files and u_winerror string format helper 2022-11-24 16:17:26 +00:00
Jakob Bornecrantz ad4c6a7215 u/pacing: More Tracy plots 2022-11-24 15:34:59 +00:00
Jakob Bornecrantz d1db1dabfd u/pacing: Work around asserts on slow compositors
This isn't the most ideal solution but a proper fix will take longer.
2022-11-24 12:03:53 +00:00
Jakob Bornecrantz 37da46b709 u/pacing: Add metrics output 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 87fdedeb68 u/pacing: Track more variables in app pacer 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 7fa20a8b46 u/metrics: Add functions to write a metrics file 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 58596a5830 u/pacing: Add Tracy plots 2022-11-21 16:46:12 +00:00
Jakob Bornecrantz 65e76e1277 u/trace_marker: Tracy support 2022-11-21 16:46:12 +00:00
Jakob Bornecrantz d48de0d832 u/worker: Use U_TRACE_SET_THREAD_NAME 2022-11-20 13:52:38 +00:00
Jakob Bornecrantz 8b0e7675e4 u/sink: Use U_TRACE_SET_THREAD_NAME 2022-11-20 13:52:38 +00:00
Jakob Bornecrantz b49dc593b8 u/pacing: Use U_TRACE_PERFETTO define 2022-11-20 13:52:37 +00:00
Jakob Bornecrantz 469a79493c u/trace_marker: Add U_TRACE_SET_THREAD_NAME 2022-11-20 11:24:27 +00:00
Jakob Bornecrantz d1e116cb58 u/trace_marker: Check for both tracing and percetto 2022-11-20 00:31:24 +00:00
Jakob Bornecrantz f4a5e599ef u/trace_marker: Add convenience U_TRACE_PERCETTO define 2022-11-20 00:31:24 +00:00
Jakob Bornecrantz 648f91d35c u/trace_marker: Refactor define names and split idents from func 2022-11-19 17:38:48 +00:00
Jakob Bornecrantz 4ee8aa4054 u/trace_marker: Reorg file (NFC) 2022-11-19 17:38:48 +00:00
Jakob Bornecrantz 7d2bd5b3e0 u/trace_marker: Fix copy paste error (NFC)
Define was unused till now.
2022-11-19 17:38:48 +00:00
Ryan Pavlik 2eb259f26a aux: can not -> cannot 2022-11-09 14:48:38 -06:00
Ryan Pavlik 1fb6270194 a/util: Resolve a bothersome clang-tidy complaint in iterators. 2022-11-09 08:26:16 -05:00
Ryan Pavlik 290fafa4f7 a/util: Fix missing pragma once 2022-11-09 08:26:16 -05:00
Mateo de Mayo 9d6c29397f misc: Fix multiple compile warnings in gcc and clang 2022-11-03 20:08:52 +00:00
Moses Turner b8a586175d a/util: Add header for box intersection over union 2022-11-03 16:46:33 +00:00
Jakob Bornecrantz 7b1c18255a u/pacing: Work around issues with frame reuse
The code creates a frame with the timing information, and keeps track of the
times the applications does various things during the frame loop. Like
starting to render and finished rendering and so on. It keeps track of that
frame until it has determined that the application or the system compositor
will never do anything thing with that frame.

Now the allocation side of thing is very simple, just a long array of
FRAME_COUNT size that is reused with frame_id % FRAME_COUNT. So if the
application or the compositor keeps a frame along for too long it will try to
reuse that frame. The code has asserts to catch this. Making FRAME_COUNT makes
that re-use more unlikely.
2022-11-02 00:22:19 +00:00
Jakob Bornecrantz d4a77da827 a/util: Add comments about DSOs 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz e629bbbe2b a/util: Split out process functions into own library 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 8ca60f4304 a/util: Split out sink functions into own library 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 12bb18a34c u/file: Fix define checks being erroneous 2022-10-12 13:05:39 +01:00
Jakob Bornecrantz 1cafa92c3b u/pacing: Refactor out tracing writing to own function 2022-10-11 20:33:56 +01:00
Jakob Bornecrantz 5ed13c6cc2 u/pacing: Account for present slop in assert 2022-10-11 20:33:56 +01:00
Julian Petrov 2e4c857a5a u/process: Make u_process work on non-linux systems 2022-10-09 15:21:37 +01:00
Julian Petrov c7a5a0bc1b u/file: Make more functions work on Windows 2022-10-09 15:21:37 +01:00
Jakob Bornecrantz 08f6440aa4 u/pacing: Trace GPU info 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz f63c786ac9 u/pacing: Add gpu_info to u_pacing_compositor 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz da542e3f5e u/pacing: Introduce latched and retired calls on app pacer 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz 7eacf6bd7a u/pacing: Refactor out tracing writing to own function 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz 4ec3512641 u/pacing: Track session_id on app pacer 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz b6b9004fb2 u/pacing: Tidy 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz d1d845e430 u/pacing: Make sure to set predicted_display_time_ns 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz b5b832f612 u/trace_marker: Silence deprecation from percetto defines 2022-09-22 22:00:32 +01:00
Moses Turner d5dd9a264e a/util: Remove C++ guards and pragma once from C source file 2022-09-22 01:11:33 -05:00
Moses Turner 833787c492 u/tracked: Add u_tracked_imu_3dof 2022-09-21 01:52:15 +01:00
Moses Turner d48792d9a9 u/sink: Ensure that image frames have monotonic timestamps 2022-09-21 01:52:15 +01:00
Moses Turner 17e0c39df2 u/sink: Add u_imu_sink_force_monotonic and u_imu_sink_split 2022-09-21 01:52:15 +01:00
Moses Turner 48e8894b74 u/json: Add u_json_get_pose_permissive
To parse poses from non-Monado configs with non-standard member names.
2022-09-21 01:52:15 +01:00
Moses Turner b31eb76718 u/json: Add u_json_get_pose 2022-09-21 01:52:15 +01:00