Commit graph

4478 commits

Author SHA1 Message Date
Jakob Bornecrantz 5fc30a4e22 c/multi: Make sure to retire delivered frames once the session goes invisible or non-active
Launching two instances of hello_xr will cause an assert in the app pacer.
2022-10-01 13:10:42 +01:00
Jakob Bornecrantz 88ce42dbf9 c/multi: Paranioa 2022-10-01 13:10:42 +01:00
Christoph Haag f6821402fd c/main: Hook up layer squasher in main compositor
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-10-01 13:10:42 +01:00
Christoph Haag 95fb034b92 c/render: Implement layer squashing for compute shader
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-09-30 22:43:58 +01:00
Christoph Haag fa71462d86 c/render: Move COMP_MAX_LAYERS to render_interfaces.h 2022-09-30 22:38:54 +01:00
Jakob Bornecrantz 13124f019e d/opengloves: Fix left/right typos 2022-09-29 21:12:44 +00:00
Jakob Bornecrantz 2673787429 d/opengloves: Fix leak of config JSON 2022-09-29 21:12:44 +00:00
Jakob Bornecrantz 1e639fc2f3 d/opengloves: Fix leaks of udev objects 2022-09-29 21:12:44 +00:00
Moses Turner 034099211f d/dai: Initialize mutex and thread helper 2022-09-28 18:37:49 -05:00
Jakob Bornecrantz 127a467efc h/mercury: Add missing break statement 2022-09-28 22:56:01 +00:00
Jakob Bornecrantz da571275c2 st/oxr: Fix enum comparison warning 2022-09-28 22:56:01 +00:00
Jakob Bornecrantz 676e071aca c/main: Pass GPU info to pacer 2022-09-28 21:46:56 +00: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
Ryan Pavlik 109e373e0c c/main: Move ownership of present/render semaphores to comp_target
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-28 21:34:06 +00:00
Jan Schmidt 3b7f95b39e d/rift_s: Rework hw2mono clock tracking
Use the common hw2mono/a2b clock code from vive_source
2022-09-26 00:32:28 +10:00
Jan Schmidt 942df72c26 d/rift_s: Reduce camera frame delay to 2 2022-09-26 00:32:28 +10:00
Jan Schmidt 32cc6e05da d/rift_s: Move builder to targets/common
Move the builder into the common area.
2022-09-26 00:32:28 +10:00
Jan Schmidt 5c573152a8 d/rift_s: Set camera orientation in calibration
Put the right rotation of the front cameras
into the camera calibration struct
2022-09-26 00:32:28 +10:00
Jan Schmidt 495eecb65f d/rift_s: Add 6DOF SLAM tracking and hand tracking
Find and capture input from cameras, and split according to
frame type. Send long exposure tracking frames through
the AEG module, and SLAM and hand tracking trackers.

Add controller emulated hand devices.

The native "fisheye62" camera distortion model is
dynamically converted to OpenCV Kannala-Brandt
parameters using a TinyCeres solver.
2022-09-26 00:32:28 +10:00
Jan Schmidt 9fbe81e494 d/rift_s: Port OpenHMD Oculus Rift S driver
Port across the Oculus Rift S driver from OpenHMD as a native
Monado driver.

This is mostly the same as the OpenHMD 3DOF driver, with
slightly better HMD distortion correction, various small
fixes, some capsense touch detection support.

Controller poses are rotated 40° to match grip pose.
2022-09-25 02:17:44 +10:00
Jakob Bornecrantz b5b832f612 u/trace_marker: Silence deprecation from percetto defines 2022-09-22 22:00:32 +01:00
Moses Turner 47714ed650 h/mercury: Add 2D model input and output visualizers 2022-09-22 13:22:55 -05:00
Moses Turner 812cc01104 h/mercury: Fix for blackbar in 180 degree orientation 2022-09-22 14:02:21 +01:00
Jakob Bornecrantz 098bd5e773 st/gui: Add discrete steps in video preview scale 2022-09-22 14:02:21 +01:00
Moses Turner 9a9878a850 st/gui: Improve record window scaling and add 180 degree flipping 2022-09-22 12:09:25 +00: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 6ec9b73e1e d/wmr: Provide camera orientation to hand tracking 2022-09-21 23:11:58 -05:00
Jakob Bornecrantz 5c958d096d d/vive: Make sure to free the source 2022-09-22 00:41:10 +01:00
Moses Turner 45e52dee8f d/ns: Switch NS driver to builders 2022-09-21 07:57:03 -05:00
Moses Turner 6fdd790da0 d/dai: Update DepthAI driver
* Removed depthai_tracked_device - now you create a "SLAM" device, plug any frameserver into it and you're done
* Consolidated the grayscale frameservers into just one that gives you SLAM sinks
* Allows for different framerates and half-size for ov9282s
* Added debug frame sinks
* Added the ability to wait at startup for a number of frames for the streams to stabilize before submitting them to SLAM
2022-09-21 07:57:03 -05:00
Moses Turner 201708dee5 d/ht: Remove DepthAI hand tracking device
This was super crufty. Instead now you use a builder to create SLAM sinks with the DepthAI builder and plug them into a regular HT device
2022-09-21 07:57:03 -05:00
Moses Turner 074e18cac9 d/twrap: Add tracking wrapper driver 2022-09-21 07:57:03 -05:00
Moses Turner ef767af2ad cmake: Always build ht_ctrl_emu driver 2022-09-21 07:57:03 -05:00
Moses Turner 16dffc8d3b cmake: Link drv_ht and drv_cemu in t/common instead of vive/survive 2022-09-21 07:57:03 -05:00
Moses Turner 5c18f83e8d d/ulv2: Convert Ultraleap driver create function to helper 2022-09-21 01:54:40 +01: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
Moses Turner d91975299d u/config: Use cJSON_Delete instead of cJSON_Free for gui scene parsing 2022-09-21 01:52:15 +01:00
Moses Turner 714925e1b8 t/common: Use cJSON_Delete instead of cJSON_Free in SimulaVR 2022-09-21 01:52:15 +01:00
Moses Turner e1fbb5b619 cmake: Improve seperation between categories (NFC) 2022-09-21 01:52:15 +01:00
Moses Turner a23bf9ab36 d/ns: Use math/m_mathinclude.h to fix Windows build 2022-09-21 01:45:24 +01:00
Moses Turner 956ee5ae9d d/ns: Allow for freeing the 3D optical system 2022-09-21 01:45:24 +01:00
Jakob Bornecrantz e06608533f c/multi: Pass in option to do warm start-ups 2022-09-19 22:31:35 +00:00
Jakob Bornecrantz 6faea9224e c/multi: Add warm start and invalid states 2022-09-19 22:31:35 +00:00
Jakob Bornecrantz 4b3f97c65d c/multi: State paranioa 2022-09-19 22:31:35 +00:00
Daniel Willmott c83c21ef90 d/opengloves: Clarify encoding constants 2022-09-19 22:08:28 +00:00
Daniel Willmott f953ed7846 d/opengloves: Clarify input enums 2022-09-19 22:08:28 +00:00
Daniel Willmott ddda9ec727 d/opengloves: Add force feedback extension support 2022-09-19 22:08:28 +00:00
Daniel Willmott 74f14f2414 d/opengloves: Communication api change 2022-09-19 22:08:28 +00:00
Daniel Willmott 0bed585018 st/oxr: Add force feedback extension implementation 2022-09-19 22:08:28 +00:00
Daniel Willmott b710127fad xrt/device: Add force feedback role 2022-09-19 22:08:28 +00:00
Daniel Willmott 903aced023 xrt/include: Update xrt defines for force feedback output 2022-09-19 22:08:28 +00:00
Daniel Willmott 3c8e738e77 st/oxr: Update openxr extension support 2022-09-19 22:08:28 +00:00
Daniel Willmott 331f41d22e ext/openxr: Update specification to xr_mndx_force_feedback_curl 2022-09-19 22:08:28 +00:00
Moses Turner d2e2c3a988 cmake: Run cmake-format.sh 2022-09-19 21:57:37 +01:00
Christoph Haag 196bf24276 d/wmr: Add HP VR1000 support 2022-09-19 18:16:21 +00:00
Mateo de Mayo 3d366b9243 gui: Fix layout file not being created for the first time on Windows
By ensuring imgui.ini exists.
Also enabled u_config_json_open_or_create_file for Windows as this OS has an
implementation of u_file_get_path_in_config_dir available now.
2022-09-19 17:19:12 +00:00
Moses Turner bd265c611d d/ns: update Moses's distortion method 2022-09-19 11:20:04 -05:00
Moses Turner 1836182e24 t/common: Remove superfluous PID/VIDs from SimulaVR builder
And remove outdated comments
2022-09-19 11:17:34 -05:00
Moses Turner 33226dd892 d/rs: Add PID/VIDs for T265 2022-09-19 11:17:34 -05:00
Moses Turner 34d158b299 d/dai: Use setXLinkChunkSize(0) to reduce latency 2022-09-19 11:17:34 -05:00
Moses Turner 81764273ca h/mercury: Use much faster quaternion change of basis 2022-09-19 11:17:34 -05:00
Moses Turner e8225b273c t/common: Switch SimulaVR builder to u_file_read_content_from_path 2022-09-19 11:17:34 -05:00
Moses Turner d04139bedd u/file: Add u_file_read_content_from_path
Useful for Simula builder and North Star builder which both read straight from a path
2022-09-19 11:17:34 -05:00
Moses Turner a285294d7f h/mercury: Fix crop calculation for 180 degree rotations 2022-09-19 11:01:04 -05:00
Moses Turner 0ddf3e0e19 t/c/builder_lighthouse: Set camera orientation correctly 2022-09-16 23:41:18 +01:00
Moses Turner b735d99569 t/c/builder_lighthouse: Move state out of static storage
Also reword/rework some stuff to make it more obvious
which parts are specific for Valve Index cameras
2022-09-16 23:41:09 +01:00
Moses Turner e95d21586f h/mercury: Use camera orientation for keypoint model input 2022-09-15 21:36:37 -05:00
Jakob Bornecrantz 0fedf6fe7d sdl_test: Add SDL test framework 2022-09-15 14:06:20 +01:00
Moses Turner bea3569016 d/dai: Enable IR floodlight code and allow the floodlight to be controlled with an env var
IR floodlight support has been merged into DepthAI core
2022-09-13 19:56:27 -05:00
Moses Turner 0f40a4be8f t/c/builder_lighthouse: Fail more clearly when cameras aren't available 2022-09-13 22:10:58 +00:00
Moses Turner 4c55364d95 d/vive: Always give a vive config 2022-09-13 22:10:58 +00:00
bjorn 8d9244af53 c/render: Avoid potentially-unsupported memory type; 2022-09-13 19:21:13 +00:00
Jakob Bornecrantz 43526f48b7 c/multi: Do not draw apps that are not visible
Closes #197
2022-09-13 14:31:24 +00:00
Jakob Bornecrantz c6aa252796 c/multi: Do not keep track of current and sent state 2022-09-13 14:31:24 +00:00
Jakob Bornecrantz b95481ebaa t/ctl: Ensure connection is initialized properly 2022-09-13 14:31:24 +00:00
zhibinw 0cec22e907 ipc/android:allow none activity context for overlay app 2022-09-13 14:21:21 +00:00
Moses Turner e8054cd682 t/common: Use correct condition for building SimulaVR builder 2022-09-13 02:45:19 -05:00
Ryan Pavlik a7d553d93e xrt,comp,ipc...: Clarifying docs about "system compositor" and "multi compositor" 2022-09-12 10:59:41 -05:00
Moses Turner 9d6ca80af3 xrt: Add SimulaVR driver 2022-09-12 12:20:51 +00:00
Moses Turner cc62600972 d/rs: Allow Realsense device to be created outside of normal target list 2022-09-12 12:20:51 +00:00
Moses Turner 17acb376f9 xrt: Fix some typos that codespell caught 2022-09-11 23:32:28 -05:00
Jakob Bornecrantz 93ab662682 c/main: Destroy peek semaphores 2022-09-09 10:47:31 +01:00
Jakob Bornecrantz c0a3d53c0a c/main: Only create not begin peek command buffer 2022-09-09 10:47:30 +01:00
Jakob Bornecrantz cfa99000a9 c/main: Add image usage to make silence image view creation warnings 2022-09-09 10:46:43 +01:00
Jakob Bornecrantz d152c1f9db c/main: The source image starts in SHADER_READ_ONLY_OPTIMAL 2022-09-09 10:46:43 +01:00
Jakob Bornecrantz dedfd022b8 c/main: Tidy peek code 2022-09-09 10:46:43 +01:00
Jakob Bornecrantz 11a4f776e5 a/vk: Add vk_cmd_buffer_create helper 2022-09-09 10:46:21 +01:00
Jakob Bornecrantz 500d5b9954 a/vk: Rename command buffer helpers 2022-09-09 10:43:49 +01:00
Jakob Bornecrantz eeaaaf398b a/vk: Add helper to get buffer handle types
The image version of it was used for buffers as well.
2022-09-07 20:42:27 +01:00
Jakob Bornecrantz 115bf93487 st/oxr: Use precise sleeper for extra wait frame sleeps 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 828246a5cd c/util: Use wait helper to implement wait frame 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 0b2c7e207d c/multi: Use precise sleeper for scheduled frame waiting 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz e21b74059c c/multi: Use wait helper to do wait frame on main loop 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 221aea883a c/multi: Use wait helper to implement wait frame 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 1772baa90e ipc: Use wait helper to implement wait frame 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz a0d63d2f9c u/wait: Add wait helper 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz b09aa79f4a c/multi: Improve frame timing printing a little bit 2022-09-06 18:08:10 +00:00
Jakob Bornecrantz f2b8855e51 st/oxr: Correct error message 2022-09-06 18:08:10 +00:00
Jan Schmidt 1811951dd6 t/ht: Add support for camera orientation
Add a way to pass in extra information about camera views, this new
struct is merged with the old image boundary information struct.

Co-authored-by: Moses Turner <moses@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-06 18:36:53 +01:00
Simon Zeni a6c30b4083 c/main: stop allocating vkCommandBuffer each blit 2022-09-05 17:58:38 +00:00
Jakob Bornecrantz e931e0fed9 ext/openxr: Update headers to 1.0.25 2022-09-04 23:19:00 +01:00
Mateo de Mayo d47d0ce2d9 u/logging: Log to stderr in Windows 2022-09-02 22:43:24 +00:00
Jarvis Huang 7be4163b91 d/android: Fix errors while getting display metrics 2022-09-02 16:25:12 +00:00
Jarvis Huang 52c790d1a9 t/android: Store jvm/context in service-lib 2022-09-02 16:25:12 +00:00
Jarvis Huang 25e96a508c aux/android: Using DexClassLoader to load class 2022-09-02 16:25:12 +00:00
Mateo de Mayo dfd37bba78 c/render: Fix forloop bounds innocuous typo 2022-08-31 09:50:17 -03:00
Jakob Bornecrantz 1d4c4cc4a0 c/render: Add scratch image 2022-08-25 16:58:03 +01:00
Christoph Haag 10e5e75a1d c/render: Default mock image to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
Since it's only used as a default/fallback read image it's
best to put it in that layout and keep it there.
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 4505bf09ff c/render: Rename scratch to mock
Can't use default as it's a keyword in C.
2022-08-25 16:58:03 +01:00
Christoph Haag eec55c5102 c/render: Put clear and distortion shaders in own sub structs 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 8b654c76cc c/render: Spelling 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 7a52814c26 c/render: Code style 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz e02f47ef72 c/null: Request VK_KHR_maintenance[1|2] 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz acd5655a79 c/main: Request VK_KHR_maintenance[1|2] 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 767637abb8 a/vk: Add image view with usage creation helper 2022-08-25 16:57:56 +01:00
Jakob Bornecrantz fa02407726 a/vk: Add mutable R8G8B8A8_[UNORM|SRGB] image creation helper 2022-08-25 16:57:54 +01:00
Jakob Bornecrantz a5efaceba5 a/vk: Add small chain helper 2022-08-25 16:57:36 +01:00
Jakob Bornecrantz e79b23275b a/vk: Remove unused vk_get_access_flags function 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz 90f3adcdd1 a/vk: Group code 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz e7c217cea5 a/vk: Track various limits 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz b0f51acf77 a/vk: Track maintenance extensions 2022-08-25 15:05:44 +01:00
Jakob Bornecrantz fc55d623c0 xrt: Deal with vulkan underscore compat issues 2022-08-25 15:05:14 +01:00
Christoph Haag 3c9ef82060 a/math: Add math_matrix_4x4_transform_vec3 2022-08-25 12:41:07 +01:00
Jakob Bornecrantz 06ee685e9a c/util: Enable swapchain to be sub-classed 2022-08-24 19:56:42 +00:00
Jakob Bornecrantz d578203a8e c/util: Refactor comp_swapchain interface a bit 2022-08-24 19:56:42 +00:00
Jakob Bornecrantz ff4ce5f7e2 d/remote: Reset timout argument to select
Select can modify the argument, so need to reset it.
2022-08-24 14:36:56 +01:00
Ryan Pavlik 570f27d486 st/oxr: Wire up Win32 OpenGL 2022-08-22 19:53:50 +00:00
Jakob Bornecrantz a681252ac1 st/oxr: Tidy includes 2022-08-22 19:53:50 +00:00
Ryan Pavlik bdcc5be476 c/client: Win32 OpenGL client compositor
Co-authored-by: Milan Jaros <milan.jaros@vsb.cz>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-08-22 19:53:50 +00:00
Milan Jaros afe84a2c35 c/client: Swapchain for Win32 GL
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-08-22 19:53:50 +00:00
Ryan Pavlik dc470ca6fe c/client: Adjust minimum GL version for clients to 3.0.0. 2022-08-22 19:53:50 +00:00
Ryan Pavlik fc0f390a87 aux/ogl: Add WGL wrapper to the build. 2022-08-22 19:53:50 +00:00
Ryan Pavlik 483b0ecbc9 xrt: Header for Win32 OpenGL. 2022-08-22 19:53:50 +00:00
Ryan Pavlik f2967e834c xrt: Include wingdi.h for WGL 2022-08-22 19:53:50 +00:00
Moses Turner 4de631285b u/hand: Fix finger ordering 2022-08-22 13:19:48 +01:00
Ryan Pavlik 1b02783113 d/sample: Clean up, specify a blend mode 2022-08-18 16:45:45 -05:00
Jakob Bornecrantz 074121e371 st/oxr: Use correct device to check for hand tracking support 2022-08-15 15:57:42 +00:00
Jakob Bornecrantz 97874a524a st/oxr: Remove old unused device role index system 2022-08-15 15:57:42 +00:00
Jakob Bornecrantz 4fa509034d st/oxr: Print out all roles 2022-08-15 15:57:42 +00:00
Jakob Bornecrantz 2632c2239d c/multi: Start and stop the native session
This depends on the number of active app sessions.
2022-08-15 14:46:26 +00:00