Commit graph

1015 commits

Author SHA1 Message Date
Jakob Bornecrantz 0595070132 u/pacing: Split draw into draw and wait, improve pipelining 2022-04-05 22:01:17 +00:00
Jakob Bornecrantz 47649f56b6 u/pacing: Track when the app wants the frame to be displayed 2022-04-05 22:01:17 +00:00
Jakob Bornecrantz 8e8a0b38c6 u/pacing: Add gpu done time tracking to app pacer 2022-04-05 22:01:17 +00:00
Jakob Bornecrantz 04b9602dd1 u/pacing: Allow more then two frames to be alive at the same time 2022-04-05 22:01:17 +00:00
Jakob Bornecrantz f4b75b3561 u/trace_marker: Add wait pacing track 2022-04-05 22:01:17 +00:00
Jakob Bornecrantz c317a27a1d aux/vk: Remove setting of format on out struct 2022-04-04 16:12:08 +00:00
Jakob Bornecrantz 1c67113e20 aux/vk: Tidy vk_image_allocator 2022-04-04 16:12:08 +00:00
Jakob Bornecrantz 15da4636f8 aux/vk: Use VK_CSCI_FORMATS helper for swapchain image flags 2022-04-01 19:53:02 +01:00
Jakob Bornecrantz aaa2d4e8e6 aux/vk: Move compositor image format list here 2022-04-01 19:44:07 +01:00
Jakob Bornecrantz d31232c794 aux/vk: Move vk_insert_image_memory_barrier declaration (NFC) 2022-04-01 18:54:18 +01:00
Jakob Bornecrantz 4f1dfa7ae4 aux/vk: Refactor out some printing functions 2022-03-30 20:14:38 +01:00
Jakob Bornecrantz 2f73c7569a aux/vk: Refactor out init functions 2022-03-30 20:08:35 +01:00
Jakob Bornecrantz f54894ee0d aux/vk: Refactor out external handle type for compositor swapchain image 2022-03-29 16:26:34 +01:00
Jakob Bornecrantz 65ced47143 aux/vk: Add more formats to vk_format_string 2022-03-29 16:26:34 +01:00
Jakob Bornecrantz 8cfe941c01 aux/vk: Rename vk_[color_]format_string 2022-03-29 16:26:34 +01:00
Christoph Haag 5d50be0164 aux/vk: Always use dedicated allocation on desktop
Fixes CTS on nvidia.

Example code given by the driver devs in the nvidia forums was
VkBool32 dedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE) ||
                               (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE);

However on GTX 1080, nvidia 470.103 with

    ./conformance_cli "Timed Pipelined Frame Submission" -G Vulkan2

we are to create a VkImage with

  DEBUG [create_image] create_image: Use dedicated allocation: 0 (preferred: 0, required: 0)

doing so causes the VkFence wait in vk_submit_cmd_buffer to fail randomly with
either VK_TIMEOUT or VK_ERROR_DEVICE_LOST.

On AMD radv we are told to use dedicated allocation:

  DEBUG [create_image] create_image: Use dedicated allocation: 1 (preferred: 1, required: 1)
2022-03-28 23:16:05 +02:00
Moses Turner 9417fe8d7f a/tracking: Support different numbers of calib parameters 2022-03-23 20:56:15 +00:00
Jakob Bornecrantz 83c8b1da86 u/sink: Make u_sink_create_format_converter support L8
Co-authored-by: Moses Turner <moses@collabora.com>
2022-03-23 20:56:15 +00:00
Moses Turner e817a18cfd u/worker: Add #pragma once 2022-03-23 20:56:15 +00:00
Ryan Pavlik 8bfb4b3d09 cmake: Update to handle newer Percetto cmake build details 2022-03-23 11:22:10 -05:00
Christoph Haag 6fdd8ab93a aux/config_json: Only check version for camera tracking config
Only the camera tracking config writes and uses the version field.

Unfortunately the tracking override config is written into the same json
object while not making use of the version field.
2022-03-22 12:35:01 +00:00
korejan d43c7ffa71 android: Support for using device's set display refresh rate
* Adds support for querying the device's currently set display refresh rate to
  be used for android driver on creation. Allowing for devices which support
  selecting other refresh rate modes beyond 60hz.
* Changes hardcoded sensor polling rate to now match refresh queried from the
  device.
2022-03-22 12:33:30 +00:00
Jakob Bornecrantz e2e65aa241 u/logging: Fix va_copy usage 2022-03-21 22:19:30 +00:00
Moses Turner 09da6e09dc u/sink: Add u_sink_simple_queue 2022-03-19 14:28:09 +00:00
Moses Turner 662b72e2f6 u/sink: Tiny refactor for queue 2022-03-19 14:28:09 +00:00
Connor Smith 703baa94fe Make app pacing more robust to variable composition->display times.
If the last returned display time shifts backwards slightly with respect to the
last sampled display time from the compositor, the next predicted display time
will not move forward by one frame. Adding half the display period to the
comparison makes the pacing robust to this case.
2022-03-19 00:57:41 +00:00
Jakob Bornecrantz 170fe0e5d9 aux/vk: Refactor out semaphore and native creation into a helper 2022-03-19 00:41:29 +00:00
Moses Turner b6e5c296f5 comp: Factor frame-timing helper out of comp_compositor
So that we can use it for readback and anything else
2022-03-18 19:00:28 -05:00
Jakob Bornecrantz 29acdba23f aux/vk: Tidy get/import functions for native handles (NFC) 2022-03-18 23:20:20 +00:00
Jakob Bornecrantz 77ba132452 u/logging: Add u_log_set_sink implementation 2022-03-17 15:37:09 +00:00
Ryan Pavlik 81eaf5c28c gradle: update NDK and build tools versions to be consistent. 2022-03-16 20:29:50 +00:00
Jakob Bornecrantz e89e3d5276 aux/vk: Add XRT_CHECK_RETURN to sync functions 2022-03-15 00:16:17 +00:00
Mateo de Mayo 2bb0c5cda5 t/slam: Implement CSV writers for trajectories and timing info
This CSV files can be used for offline analysis.
2022-03-14 23:42:13 +00:00
Mateo de Mayo c9f7184d64 t/slam: Implement timing and trajectory error UI graphs 2022-03-14 23:42:13 +00:00
Mateo de Mayo af2dde11c3 misc: Fix some release build warnings and minor changes
- Add CMakeUserPresets.json to .gitignore
- Fix DASSERTs warning for release builds
- Do not use one euro filter with invalid poses
- Other NFC style changes
2022-03-14 23:42:13 +00:00
Mateo de Mayo 1dbda3d8c8 t/euroc: Tie CSV file opening to recorder lifecycle
This is a better way of handling writing small but high frequency data
like IMU samples so as to avoid continuous opening and closing of a file.
2022-03-14 23:42:13 +00:00
Jakob Bornecrantz 37354b953c aux/vk: Add more timeline semaphore functions 2022-03-14 18:58:35 +00:00
Jakob Bornecrantz d0f6ea10bc u/worker: Fix some late feedback 2022-03-14 18:57:35 +00:00
Jakob Bornecrantz 84069cc4f0 u/logging: Add logging sink to intercept log messages 2022-03-14 17:21:20 +00:00
Antonio Ospite 37852ffa65 xrt: fix -Wreturn-type warnings
Add some missing returns pointed out by -Wreturn-type:

-----------------------------------------------------------------------
[75/1571] Building C object src/xrt/auxiliary/CMakeFiles/aux_util.dir/util/u_config_json.c.o
.../src/xrt/auxiliary/util/u_config_json.c: In function ‘u_gui_state_scene_to_string’:
.../src/xrt/auxiliary/util/u_config_json.c:524:1: warning: control reaches end of non-void function [-Wreturn-type]
  524 | }
      | ^
-----------------------------------------------------------------------
2022-03-14 14:06:02 +00:00
Jakob Bornecrantz 771aeda784 u/worker: Add task worker helper 2022-03-11 15:29:16 +00:00
Jakob Bornecrantz 76d8944765 os/threading: Add os_cond wrapper 2022-03-11 15:29:16 +00:00
Antonio Ospite e8c9d8f575 xrt: fix -Wunused-variable warnings
Some variables are only used in asserts, so they may be unused
depending on the build type:

-----------------------------------------------------------------------
[68/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_util.dir/util/u_sink_combiner.c.o
.../src/xrt/auxiliary/util/u_sink_combiner.c:188:11: warning: unused variable 'diff_ns' [-Wunused-variable]
                int64_t diff_ns = frames[0]->timestamp - frames[1]->timestamp;
                        ^
1 warning generated.
[205/315] Building C object src/xrt/compositor/CMakeFiles/comp_main.dir/main/comp_renderer.c.o
.../src/xrt/compositor/main/comp_renderer.c:872:17: warning: unused variable 'layer_count' [-Wunused-variable]
        const uint32_t layer_count = c->base.slot.layer_count;
                       ^
1 warning generated.
-----------------------------------------------------------------------

Mark them as XRT_MAYBE_UNUSED to fix the build warnings.
2022-03-09 14:53:06 +01:00
Antonio Ospite 14a1ced0e4 xrt: fix -Wreturn-type warnings
Add some missing returns pointed out by -Wreturn-type:

-----------------------------------------------------------------------
[32/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_gstreamer.dir/gstreamer/gst_sink.c.o
.../src/xrt/auxiliary/gstreamer/gst_sink.c:53:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
1 warning generated.
[84/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_vk.dir/vk/vk_compositor_flags.c.o
.../src/xrt/auxiliary/vk/vk_compositor_flags.c:117:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
.../src/xrt/auxiliary/vk/vk_compositor_flags.c:146:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
2 warnings generated.
-----------------------------------------------------------------------

For the function returning VkImageAspectFlags return a literal 0 because
the enum values VK_IMAGE_ASPECT_NONE or VK_IMAGE_ASPECT_NONE_KHR may not
always be defined.
2022-03-09 14:52:29 +01:00
Jakob Bornecrantz 17e9e06de7 aux/vk: Detect external semaphore support 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz c0bd8ce3ba aux/vk: Let vk_init_from_given enable timeline semaphores 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz 3c8378631f aux/vk: Properly set log_level in given vk_bundles 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz 3044794f93 aux/vk: Rename timeline_semaphores to features.timeline_semaphore 2022-03-08 21:04:56 +00:00
Moses Turner 7235b6a45a u/sink: Add some comments 2022-03-08 20:38:58 +00:00
Moses Turner 37f0c901d2 u/sink: Add sink to convert from stereo to two SLAM frames 2022-03-08 20:38:58 +00:00