Commit graph

353 commits

Author SHA1 Message Date
zhibinw 172ed2e847 xrt: Do not require OPENXR permission when connect MonadoService 2022-04-12 14:20:17 +00:00
Christoph Haag 22c7fea639 ipc: Amend swapchain create error for unsupported swapchains 2022-04-01 18:10:22 +01:00
Christoph Haag 1eeb870a2d ipc: Add float to supported types in proto 2022-03-30 22:35:33 +02:00
Jakob Bornecrantz ef373662f2 ipc: Impelement xrt_compositor_semaphore interfaces 2022-03-14 19:53:05 +00:00
Jakob Bornecrantz ab5e863116 ipc: Do not copy fov in distortion information
No other distortion info is passed along
2022-02-19 13:22:25 +00:00
Christoph Haag 996a5d3e9a xrt: Move fov from xrt_view to xrt_hmd_parts::distortion 2022-02-19 13:04:32 +00:00
Jakob Bornecrantz 9b656cde77 xrt: Remove xrt_device::get_view_pose
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:24 +00:00
Jakob Bornecrantz be4f4969c0 ipc: Add support for xrt_device::get_view_poses 2022-02-16 23:15:06 +00:00
Christoph Haag dd81085a04 ipc/server: print monado version in info log on startup 2022-02-14 00:26:09 +01:00
Jarvis Huang 97100821d2 ipc/android: Add shutdown mechanism back 2022-01-05 14:59:39 +00:00
Jarvis Huang 9339e6022f ipc/android: Refactor and cleanup IPC glue code 2022-01-05 14:59:39 +00:00
Jarvis Huang 3bb151e4bf ipc/android: Avoid race condition/blocking main thread 2022-01-05 14:59:39 +00:00
Jarvis Huang f575a7a1a9 ipc/android: Remove watchdog delay if surface comes from client
When surface comes from client, it's not reuseable after
client exits. Removing the timeout so runtime can release all the
graphcis resources associated with surface.
2022-01-05 14:59:39 +00:00
Jarvis Huang 6a61ed5695 ipc/android: Stop runtime service when no clients connected 2022-01-05 14:59:39 +00:00
Moses Turner 5635cd3885 ipc: fix typo - connec -> connect 2021-12-20 06:21:36 -06:00
Ryan Pavlik 85ee6379e6 ipc: Fix copy/paste typo.
Thanks to xdust for catching this.
2021-12-03 10:11:17 -06:00
Jarvis Huang 27550ffa39 aux/android: Looper trick for NativeActivity with app-glue 2021-12-02 09:40:36 -06:00
Jakob Bornecrantz 3f98ea5595 xrt: Tidy s/ll/log_level/g
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Ryan Pavlik 33c0287f8b xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)

Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Mateo de Mayo 87a1198b0a misc: Address compilation warnings and fix u_json_get_bool 2021-11-12 15:33:06 -03:00
Ryan Pavlik cc4007a69e cmake: Substantial cleanups and simplifications
We now have a cmake-format config file.
We no longer use list variables for sources, instead using
target_sources when we need to add, in accordance with current
best practice. (This makes it a lot easier to edit too.) There's no more
include_directories(), add_definitions(), or other gently-deprecated
directory-scoped commands, nor any CMake scripts that include
a parent directory reference (named targets instead)
2021-11-12 09:48:37 -06:00
Ryan Pavlik 4759ddda63 ipc: Fix it's vs its 2021-11-03 17:29:13 -05:00
Moses Turner 67430358c2 ipc: add a newline at the end of ipc_protocol_generated.h (NFC) 2021-11-01 18:01:40 -05:00
Jakob Bornecrantz c8ee075b8d ipc/server: Add error messages for init failures 2021-10-28 22:58:44 +00:00
Jarvis Huang 6b8349c887 ipc/android: Force client entering resume state before IPC setup 2021-10-27 13:44:20 +00:00
Jarvis Huang 210a6908cd ipc/android: Avoid deadlock on Android 2021-10-27 13:44:20 +00:00
Christoph Haag 13f7fa3b82 ipc: Pack ipc message structs to make valgrind happy 2021-10-26 23:20:28 +02:00
Moses Turner 1a4dd31b5e ipc: Switch to new get_hand_tracking signature 2021-10-02 23:06:29 +01:00
Ryan Pavlik e8ed9c95f6 ipc/android: Require the OpenXR permission. 2021-09-27 09:26:15 -05:00
Ryan Pavlik 690141a7ee gradle: Update Android build tools 2021-09-27 09:26:15 -05:00
Christoph Haag 08c136b712 ipc: Fix warning and paranoia check 2021-08-27 12:34:08 +00:00
Moses Turner 9febede5c6 ipc/server: Clean up the hack if we exit early 2021-08-20 12:28:26 +01:00
Jakob Bornecrantz 77a67387b4 ipc/server: Paranoia 2021-08-11 18:09:52 +01:00
Christoph Haag 1b179306dc comp: Only use dedicated allocation when supported/preferred
Fixes OpenGL depth formats on Tegra
2021-08-09 15:17:25 +02:00
Jakob Bornecrantz e554f9ee02 ipc: Fix NULL check stopping main app visibility events from working 2021-06-18 20:13:46 +01:00
Christoph Haag 6ba07514ef ipc: Add env var to ignore client/service version conflicts 2021-05-26 22:22:04 +02:00
Christoph Haag f49d3ae404 ipc: Check that service and client are the same git revision 2021-05-26 22:21:08 +02:00
zhibinw 92565b7f21 ipc/android: support create surface from runtime. 2021-05-17 16:20:29 +00:00
Ryan Pavlik 77baa8b7e6 aux/android: Move code into official namespaces 2021-05-04 11:21:46 -05:00
Jakob Bornecrantz 61d4d86874 ipc: Remove debug print (NFC) 2021-04-30 21:56:09 +00:00
Ryan Pavlik e82fafb186 cmake: Allow C++17 mode on all platforms, all modules.
Remove per-module C++17 settings.
2021-04-30 15:37:04 -05:00
Jakob Bornecrantz 8a191daa29 ipc: Add session_destroy to handle session destruction 2021-04-27 22:47:11 +00:00
Jakob Bornecrantz 78f7d5ce91 ipc: Assert if st/oxr calls the wrong thing 2021-04-27 01:44:16 +01:00
Jakob Bornecrantz 8277df418d xrt: Make eye_relation argument to xrt_device_get_view_pose const (NFC) 2021-04-27 01:44:13 +01:00
Jakob Bornecrantz 741dcbdf40 ipc: Return XRT_ERROR_IPC_SESSION_NOT_CREATED if so is the case 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 5627849135 ipc: More trace_marker functions 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 3953321129 ipc: Return error from ipc_call_session_create in create_native_compositor 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz c49abf9103 ipc: Print out all error messages, and values 2021-04-21 18:03:10 +00:00
Christoph Haag 341fa45eda ipc: Print socket filename and errno in error message 2021-04-20 16:04:26 +02:00
Christoph Haag fd6bd0f592 ipc: Use xdg runtime directory for socket
u_file_get_runtime_dir falls back to /tmp if $XDG_RUNTIME_DIR is not set.

ipc: %t/monado_comp_ipc socket for systemd socket activation
2021-04-15 21:42:06 +00:00
Christoph Haag 4ea68b89a4 xrt: Add u_process, backed by libbsd's pidfile
Delete stale ipc files in ipc server when not already running.

If built without libbsd, fall back to previous behavior of complaining about existing ipc files and exit.
2021-04-15 21:42:06 +00:00
Jakob Bornecrantz 654043ede5 ipc: Remove stale todo 2021-04-13 23:21:14 +01:00
Jakob Bornecrantz c8cde9c447 ipc: Set correct reference count on swapchain 2021-04-13 23:21:14 +01:00
Moses Turner c53eba34d0 ipc: switch blend mode to array 2021-04-11 04:08:49 -05:00
zhibinw d7f0380f53 ipc/android: Dup the socket fd in native side, close the fd on java side. 2021-04-09 16:42:00 +00:00
Jakob Bornecrantz 8215af5e5c u/rt: Refactor render timing 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz bcf9b62fc0 ipc: Adopt to new multi client interface 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz efdba1602f xrt: Pass along display_time_ns to layer begin 2021-04-07 00:50:10 +01:00
Ryan Pavlik aefd8c0697 ipc/android: Be sure to init the mutexes. 2021-03-30 20:46:00 +00:00
Mateo de Mayo 12d52193da d/qwerty: Connect the debug UI to the Qwerty driver
It was necessary to add a list of xdevs to oxr_sdl2_hack_start and to
populate such list from its callees.
That includes sdl2_program.gui_program->xdevs which was not being filled
for the monado-service target.
2021-03-29 15:41:25 -03:00
Ryan Pavlik f82d0f484f ipc: Fix doxygen warning 2021-03-26 17:10:53 -05:00
Ryan Pavlik 20468070fa ipc: De-duplicate member for simplicity and to avoid Doxygen warning 2021-03-26 17:10:47 -05:00
Christoph Haag de6d2a888a ipc: Change server exiting error->info 2021-03-24 18:45:00 +00:00
Jakob Bornecrantz 63f5c86257 xrt: Make xrt_swapchain be reference counted 2021-03-24 17:50:08 +00:00
Christoph Haag 7b95330bb5 ipc: Print information to delete socket file 2021-03-10 02:02:44 +01:00
Jakob Bornecrantz b4f9d07abf ipc: Trace markers 2021-03-08 11:20:52 +00:00
zhibinw 57b42cad9a ipc/android: Start client listener thread when get new fd from client. 2021-03-02 14:02:54 +08:00
Ryan Pavlik 1963e313b1 ipc/android: Switch to using client push mutex to avoid cond var wait in server. 2021-02-24 15:25:28 -06:00
Ryan Pavlik 12e07bdb69 ipc/android: Fix potential lost signal to client 2021-02-24 15:23:26 -06:00
Ryan Pavlik ccf6ac4b94 ipc/android: Remove old workaround 2021-02-24 15:23:26 -06:00
Ryan Pavlik 01fbbc4ed5 ipc/server, t/server_lib: Implement mainloop code for Android, using a pipe. 2021-02-24 15:23:26 -06:00
Jakob Bornecrantz 7460ae54f4 u/timing: Rename files 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 5291b8d2bb ipc: Refactor out broadcasting of timings 2021-02-24 01:23:55 +00:00
Ryan Pavlik f15a14b193 ipc/server: Factor out the mainloop code that may vary between platforms 2021-02-22 17:03:16 -06:00
Moses Turner daff282946 ipc: don't drop the blend mode on the floor 2021-02-19 17:47:07 -06:00
Jakob Bornecrantz 84486aa2b9 ipc/server: Print application info 2021-02-16 17:55:23 +00:00
Ryan Pavlik 8f0c20093c ipc/android: Specify full qualified service name 2021-02-10 16:09:12 +00:00
Ryan Pavlik c65ce85fe1 ipc/android: Clean up MonadoService 2021-02-10 16:09:12 +00:00
Ryan Pavlik 84508320f4 ipc: Fix typo in comment 2021-02-10 16:09:12 +00:00
Ryan Pavlik c4108035ea ipc: Fix doc warning 2021-02-10 16:09:12 +00:00
Jakob Bornecrantz 797fa5459c u/rt: Tidy and documment render timing code 2021-01-21 00:32:36 +00:00
Jakob Bornecrantz c3d12a2dc4 ipc: Tidy logging 2021-01-20 16:24:47 +00:00
Jakob Bornecrantz afea93f297 xrt: Remove prepare function from xrt_compositor 2021-01-20 15:04:09 +00:00
Jakob Bornecrantz 2b8c835b68 xrt: Introduce xrt_system_compositor 2021-01-20 15:04:09 +00:00
Jakob Bornecrantz 57bfbb615f ipc: Tidy code and clang-format 2021-01-19 18:15:02 +00:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Jakob Bornecrantz c191c9a466 ipc: Support sending sync handles on layer_commit 2020-12-28 15:22:06 +00:00
Jakob Bornecrantz 84d4b6aaae ipc/shared: Support sending graphics sync handles 2020-12-28 15:22:06 +00:00
Jakob Bornecrantz 1302b07d68 xrt: Add sync_handle argument to layer_commit 2020-12-28 15:22:06 +00:00
Lubosz Sarnecki 1038145ffd ipc: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki dc45a201db c+ipc+st: Complete equirect1 boilerplate. 2020-12-14 18:59:28 +00:00
Lubosz Sarnecki f334b8b6c7 src: Consistently append 2 to equirect2 code.
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT to XRT_FEATURE_OPENXR_LAYER_EQUIRECT2.
Rename equirect to equirect2.
Rename shader files.
2020-12-14 18:59:28 +00:00
Christoph Haag 30d7001df1 ipc: Make OXR_DEBUG_GUI=1 work with monado-service 2020-12-14 18:53:07 +00:00
Jakob Bornecrantz 39186a1e1e ipc/server: Rename ipc_server_client.c to ipc_server_handler.c 2020-12-09 21:03:50 +00:00
Jakob Bornecrantz 4b74d6b7eb ipc/server: Remove (f)printf usage from code 2020-12-09 21:03:50 +00:00
Jakob Bornecrantz 1154e58d06 ipc/server: Refactor out per_client_thread 2020-12-09 21:03:50 +00:00
Lubosz Sarnecki 1430b1b22c ipc/server: Add Android main entry point which receives fd. 2020-12-01 18:05:32 +01:00
Lubosz Sarnecki baa68fac4f ipc/server_process: Don't init listen socket and epoll on Android.
As the equivalent is already done in Java.
2020-12-01 18:05:32 +01:00
Lubosz Sarnecki 3202922ce7 ipc/server: Factor out start_server_thread function. 2020-12-01 18:05:32 +01:00
Lubosz Sarnecki db95b34e6c android/Client: Start IPC process in thread. 2020-12-01 18:05:32 +01:00
Lubosz Sarnecki 92dab7b75b android/Client: Create Android surface for OoP. 2020-12-01 18:05:32 +01:00
Ryan Pavlik 4101b3d92d android: IPC/service-related cleanups. 2020-12-01 18:05:32 +01:00
Ryan Pavlik 974e7bd1d5 ipc/android: Be a foreground service 2020-12-01 18:05:32 +01:00
Ryan Pavlik a2a61cb5cf ipc/android: Improve Client 2020-12-01 18:05:32 +01:00
Ryan Pavlik 2fe699d7c1 xrt/android: Actually start using dependency injection in Java/Kotlin code. 2020-12-01 18:05:32 +01:00
Ryan Pavlik 885dd1d4d5 gradle: Handle kotlin in multiple parts of the build 2020-12-01 18:05:32 +01:00
Ryan Pavlik fa840e1cd8 ipc/android: Initial port of parts to Kotlin. 2020-12-01 18:05:32 +01:00
Ryan Pavlik e4a346ad0b ipc/android: Clean ups and debug messages 2020-12-01 18:05:31 +01:00
Ryan Pavlik d9053e0dc5 ipc/android: Single point of truth for action name. 2020-12-01 18:05:31 +01:00
Ryan Pavlik aa222ebba1 ipc/android: Clean up, adjust action name, adjust manifest. 2020-12-01 18:05:31 +01:00
Ryan Pavlik d9453c708e ipc/android: Bump minSdkVersion 2020-12-01 18:05:31 +01:00
Ryan Pavlik 635542f905 gradle: Break release build on a // STOPSHIP comment 2020-12-01 18:05:31 +01:00
Ryan Pavlik 23e01fc656 gradle: Factor out the dependency versions to a build-wide variable 2020-12-01 18:05:31 +01:00
Lubosz Sarnecki 144a5751f6 android/ipc/Client.java: call connectSync.notify(). 2020-12-01 18:05:31 +01:00
Ryan Pavlik da68bf502b ipc/client: Start using Android-specific code if needed. 2020-12-01 18:05:31 +01:00
Ryan Pavlik 9c7cfa0229 ipc/android: Add Android-specific native code library. 2020-12-01 18:05:31 +01:00
Ryan Pavlik 3011e3c9f6 ipc/android: Add a blocking connect Java method, and small clean-ups. 2020-12-01 18:05:31 +01:00
Christoph Haag f5ef3985ba xrt: Add support for locating hand joints in action spaces 2020-11-23 20:42:54 +00:00
Lubosz Sarnecki 8d628c43a9 ipc/server: Port printf calls to static u_logging.
Make messages more consistent.
2020-11-12 15:11:40 +01:00
Lubosz Sarnecki 23aa3652a3 ipc: Port to u_logging. 2020-11-12 15:11:40 +01:00
Ryan Pavlik 86a19e6697 gradle: Remove unused dependencies. 2020-11-10 18:44:03 +00:00
Ryan Pavlik e1e7b92372 ipc/android: Add additional service options 2020-11-05 17:02:21 -06:00
Jakob Bornecrantz b5e847c814 ipc: Add support for device provided bindings 2020-11-05 14:44:04 +00:00
Christoph Haag 4709744d0a ipc: log ipc calls and dispatch with IPC_PRINT_SPEW 2020-11-03 22:32:58 +01:00
Christoph Haag 233f3cb234 ipc: hook up IPC_PRINT_SPEW and IPC_PRINT_DEBUG variables
for both server and client
2020-11-03 22:32:58 +01:00
Ryan Pavlik 5f70826ba5 xrt: Add misc missing copyright/license notices 2020-11-02 17:04:51 +00:00
Jakob Bornecrantz 75ff836e3b ipc: Add ipc_android doc group 2020-10-29 17:02:06 +00:00
Jakob Bornecrantz 585bb6fe7a ipc: Add ipc_shared doc group 2020-10-29 17:02:06 +00:00
Jakob Bornecrantz 3008e5482d ipc: Refactor folders 2020-10-29 17:02:06 +00:00
Christoph Haag 6e5206f232 ipc: Add missing position_tracking_supported passthrough 2020-10-12 22:13:48 +02:00
Christoph Haag 256e2c68d8 xrt: Implement & hook up hand joint tracking infrastructure
Include <inttypes.h> to satisfy older compilers
2020-10-12 22:13:47 +02:00
Jakob Bornecrantz 813487c2f5 ipc: Use new none distortion code 2020-10-07 23:45:46 +01:00
Christoph Haag a0dd182dae build/ctl: Explicitly depend on generated ipc client header
Including a header in the build target is the documented solution for depending on
the generation of files via custom targets.

Fixes build on alpine linux.
2020-10-04 23:44:16 +02:00
Jakob Bornecrantz 3729f2e8c9 ipc: Free client side compositor 2020-10-04 13:04:53 +01:00
Ryan Pavlik dae3ab3a4f xrt: Be sure to include config headers 2020-09-18 13:56:24 +01:00
Christoph Haag eb8a304178 ipc: print send and receive errors with ERROR, not DEBUG
These errors lead to unexpected output and should be investigated.
2020-09-11 18:52:01 +02:00
Jakob Bornecrantz 8e24dda794 xrt: Remove out_timestamp argument to xrt_device::get_tracked_pose 2020-09-07 23:37:09 +01:00
Jakob Bornecrantz 4e6a137c62 ipc: Make it possible to toggle inputs on and off 2020-08-28 11:33:38 +00:00
Ryan Pavlik b944b82f3c ipc: Fix build on Android. 2020-08-26 16:31:41 +01:00
Jakob Bornecrantz 1496262564 xrt: Constify compositor interface 2020-08-26 15:25:00 +01:00
Jakob Bornecrantz 16b9dc13e2 xrt: Correct assert for ipc data type 2020-08-25 14:55:43 +01:00
Jakob Bornecrantz efac59a1d8 ipc: Add support for depth projection 2020-08-25 14:55:43 +01:00
Jakob Bornecrantz 1914a2ee93 ipc: Tidy 2020-08-21 18:17:18 +01:00
Ryan Pavlik 56dcaf5abf ipc: Some comment improvements. 2020-08-19 16:07:00 -05:00
Ryan Pavlik 7c0df6506b ipc/client: Use Android allocator on client side. 2020-08-19 16:07:00 -05:00
Ryan Pavlik 6600e738a3 ipc: Fix loop conditions in loopback allocator 2020-08-19 11:01:49 -05:00
Jakob Bornecrantz 201b5337df ipc: It's okay to send zero handles 2020-08-19 11:45:31 +00:00
Jakob Bornecrantz 019e962f94 ipc: Tidy and better error messages 2020-08-19 11:45:31 +00:00
Jakob Bornecrantz 4754dcd11b ipc: Add support for cube, cylinder and equirect layers 2020-08-14 19:15:02 +00:00
Ryan Pavlik a6b6ab8e2c ipc: Fix conditionals about handle types. 2020-08-13 17:34:05 -05:00