Commit graph

373 commits

Author SHA1 Message Date
Ryan Pavlik a8bb821cf5 ipc: Fix typo 2022-07-26 14:45:29 +00:00
Ryan Pavlik 46ad907dac ipc: Replace size_t usages.
Not safe to use any type whose size differs between 32 and 64 bit builds.
2022-07-26 14:45:29 +00:00
bjorn 919936991c ipc: make all IPC input aggregates const; 2022-07-14 20:31:38 +00:00
utzcoz 34c97c48ef ipc,t/oxr_android: Add FLAG_IMMUTABLE for PendingIntent from S+
Signed-off-by: utzcoz <utzcoz@outlook.com>
2022-06-27 09:59:27 -05:00
Ryan Pavlik e1a0486f30 gradle: Update some deps slightly to cope with gradle 7 2022-06-25 09:59:37 +08:00
Simon Zeni f91ada32c2 ipc: add missing sys/types include 2022-05-27 15:08:40 +00:00
Mateo de Mayo bcac379cf5 ipc: Init connection mutex 2022-05-21 23:57:55 -03:00
Ryan Pavlik ea35e79ec7 ipc: Clarify that wait_image timeout is nanoseconds 2022-05-20 23:31:59 +01:00
Ryan Pavlik 7f600569e7 ipc: Word choice/clarity 2022-05-17 17:40:58 -05:00
Jakob Bornecrantz 61323c32d2 xrt: Use error messages in various instance and prober functions 2022-05-17 20:10:40 +01:00
Jakob Bornecrantz 2e8d1f9b34 ipc: Set xdev_count on xrt_system_devices 2022-05-13 10:57:28 +01:00
Jakob Bornecrantz aafbaecbc9 xrt: Remove old unused instance functions 2022-05-11 10:49:15 +01:00
Moses Turner d6f62633e9 st/gui: Use xrt_system_devices struct and xrt_instance_create_system call
Includes fixes from Christoph Haag:

```
st/gui: Fix segfault when starting monado-gui without arguments
```

```
st/gui: Run gui_prober_select only in the modules that need a prober

This also speeds up starting up the monado-gui main menu.
```

Co-authored-by: Moses Turner <moses@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-05-11 10:49:15 +01:00
Jakob Bornecrantz 634d495301 ipc: Use and support xrt_instance_create_system 2022-05-11 10:18:35 +01:00
Jakob Bornecrantz 759162ebeb ipc: Return correct status if we fail to create a semaphore 2022-05-09 14:01:20 +00:00
Christoph Haag f76b31795f ipc: zero initialize message buffer 2022-05-09 15:53:00 +02:00
Jakob Bornecrantz a36620fad3 ipc: Use xrt_swapchain_create_properties when using XINA 2022-05-04 15:51:16 +01:00
Jakob Bornecrantz 6805b40ac2 ipc: Add support for xrt_swapchain_create_properties 2022-05-04 15:50:54 +01:00
Jakob Bornecrantz 175ff58f10 build: Remove meson files 2022-04-28 21:36:25 +00:00
Ryan Pavlik 3e6ec47296 monado: Apply clang-tidy fixes to most of the codebase.
All at least visually inspected, some revised from the auto-fixit
2022-04-13 09:34:54 -05:00
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