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
Ryan Pavlik
475192ec73
xrt: Rename "fd" references to "handle"
...
This breaks some Android pieces, which will be fixed shortly.
2020-08-12 17:11:42 -05:00
Ryan Pavlik
146218b346
xrt: Some clang tidy fixes.
...
A few suppressions as well where clang-tidy did the wrong thing.
2020-08-12 17:11:42 -05:00
Ryan Pavlik
f1432789ee
ipc: Const correctness
2020-08-12 09:51:07 -05:00
Jakob Bornecrantz
d27044a18d
ipc: Add a disabled loopback allocator
2020-08-12 15:26:43 +01:00
Jakob Bornecrantz
a834c9977e
ipc: Make it possible to give the client compositor a image allocator
2020-08-12 15:26:05 +01:00
Jakob Bornecrantz
ca786df18c
xrt: Make xrt_swapchain_create_info argument const
2020-08-07 19:15:18 +01:00
Jakob Bornecrantz
0b8d800dcc
ipc: Use xrt_compositor_info in proto
...
Transport the whole compositor info struct to the client instead of just
formats so that all information is easily moved over.
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
3bbea14f24
ipc: Remove flip_y arguments to compositor creation
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
d1d841e7c3
xrt: Use new info struct for compositor formats
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
e8ca242967
xrt: Remove flip_y argument to native compositor creation
2020-08-06 15:14:49 +00:00
Christoph Haag
9a52e2384f
ipc: initialize msg_control buffer
2020-08-05 20:32:51 +00:00
Ryan Pavlik
e6abf3dea2
ipc: Docs
2020-07-22 16:17:09 +00:00
Jakob Bornecrantz
536e461776
ipc: Implement xrt_compositor::import_swapchain
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
11b2dfe213
ipc: Add function to import a swapchain
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
9c490127bb
ipc: Fix in_handles handling by syncing with the server
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
b93017911e
xrt: Make xrt_compositor::create_swapchain return xrt_result_t
2020-07-20 13:50:01 +00:00
Ryan Pavlik
82395b23bb
ipc: Use generic shmem functions now.
2020-07-16 13:06:07 -05:00
Ryan Pavlik
20c65e74e3
ipc: Define shmem utilities for Linux and Android
2020-07-16 13:06:07 -05:00
Christoph Haag
a56fa20b50
build: Install tools with meson
2020-07-16 16:04:51 +02:00
Ryan Pavlik
ebc7a11e70
ipc: Support client->server "in_handles"
2020-07-16 11:51:16 +00:00
Ryan Pavlik
c3552ed420
xrt: Rename xrt_gfx_fd.h to xrt_gfx_native.h
2020-07-15 17:19:30 -05:00
Ryan Pavlik
54f56716fd
xrt: Rename references to compositor/swapchain/image_fd to ..._native.
...
Reflecting that the native buffer isn't an FD on all platforms.
2020-07-15 09:11:58 -05:00
Ryan Pavlik
86d93601d7
ipc: Work on Android using AHardwareBuffer instead of FDs for graphics
2020-07-14 16:37:55 -05:00
Ryan Pavlik
44fe0e7709
build: Handle Android NDK better.
2020-07-14 16:37:55 -05:00
Ryan Pavlik
60cf946dd7
ipc: Normalize parameter names
2020-07-14 16:37:12 -05:00
Ryan Pavlik
abc580d2b1
ipc: Replace "out_fds" with more generic "out_handles"
...
Also, finish porting client code to use factored-out utils.
2020-07-14 16:37:12 -05:00
Ryan Pavlik
040c82cb24
ipc: Port server side to use new factored-out utils
2020-07-14 16:24:26 -05:00
Ryan Pavlik
166c041421
ipc: Start providing handle marshalling util functions
2020-07-14 16:24:26 -05:00
Ryan Pavlik
1a692f5de6
ipc: Use factored-out utils on client side.
2020-07-14 16:24:26 -05:00
Ryan Pavlik
36f66ea630
ipc: Add factored-out basic message send/receive
2020-07-14 16:24:26 -05:00
Ryan Pavlik
a5bde51c81
ipc: Change return type of some server functions from int to xrt_result_t
2020-07-14 16:24:26 -05:00
Ryan Pavlik
c2e922b0f5
ipc: Formatting cleanup
2020-07-14 16:24:26 -05:00
Ryan Pavlik
87dbad9865
ipc: Have server utils return xrt_result_t
2020-07-14 16:24:26 -05:00
Ryan Pavlik
687beddcca
ipc: Replace ipc_connection_t usage with struct ipc_connection
2020-07-14 16:24:23 -05:00
Ryan Pavlik
cf68e11b97
ipc: Be more strict in type parsing
2020-07-14 16:18:17 -05:00
Ryan Pavlik
1b88c7e089
ipc: Move data structure out of generation script
2020-07-14 16:18:17 -05:00
Christoph Haag
b073e3dfb9
xrt: Add support for assigned device roles
...
Abandons the assumption that in oxr_system.xdevs[], index 0 is HMD,
1 is left controller, 2 is right controller.
Now to represent the dynamically assigned roles, oxr_system.role contains
the index for a device in oxr_system.xdevs[] for head, left and right.
This role assignment happens on the client side and currently can not be updated
from the server side.
Also adds an enum that device drivers set indicating allowed assignments
(many controllers are physically designed to be held in a specific hand).
This also adds support for configurations with only a HMD and a right controller.
2020-07-13 18:03:01 +02:00
Christoph Haag
5788fb90a2
drivers: Add rotation/position tracking bool to xdev
...
xrGetSystemProperties() will return these values to application in XrSystemTrackingProperties
using the xdev assigned to head.
2020-07-13 18:03:01 +02:00
Jakob Bornecrantz
deedd10a50
xrt: Tidy xrt_instance_create argument order and add doc-comment
2020-07-08 14:41:12 +00:00
Ryan Pavlik
323d794df3
ipc: Add a json schema for the IPC description
2020-07-08 09:15:51 -05:00