Christoph Haag
ddf3eb5789
st/oxr: Use space graph in global-to-local space transform
...
This takes care of transforming the velocities.
2020-09-11 19:06:16 +02:00
Christoph Haag
150b7649f3
d/survive: Don't fix up invalid pose
2020-09-11 18:52:01 +02:00
Christoph Haag
a664bb22bf
d/survive: Update to recent libsurvive git
...
Rewrite input event handling and add new events from libsurvive.
2020-09-11 18:52:01 +02:00
Christoph Haag
c3fbe6eaf8
d/survive: remove unused structs
2020-09-11 18:52:01 +02:00
Christoph Haag
357b47522c
d/survive: set relation flags properly
2020-09-11 18:52:01 +02:00
Christoph Haag
f41edee4b4
st/oxr: Use space graph resolve result relation flags instead of pure pose relation
2020-09-11 18:52:01 +02:00
Christoph Haag
19acc7be25
st/oxr: Pass actual ViewStateFlags to application with xrLocateViews
...
These flags are originally set by the driver, then processed by the space graph resolver.
2020-09-11 18:52:01 +02:00
Christoph Haag
2b90b4ea89
st/oxr: Destroy compositor on instance destroy
...
Fixes direct mode on subsequent instance creation in the same process
when no session was created.
2020-09-11 18:52:01 +02: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
Christoph Haag
a884e24b9a
aux: Support waiting more than 0.999... seconds in os_nanosleep
2020-09-11 18:52:01 +02:00
Christoph Haag
6133d4cf99
d/survive: Remove out_relation_timestamp_ns
2020-09-11 18:52:01 +02:00
Christoph Haag
844daee844
st/oxr: Check xrLocateViews quaternion only if orientation valid
2020-09-11 18:52:01 +02:00
Christoph Haag
1429d678a0
aux/space: Propagate orientation valid bit through space graph resolve
...
Invalid poses may be handled more gracefully in the future. For now poses
are not transformed if orientation is not valid, because transforming with
an invalid quaternion will have bad results in any way.
v2: Upgrade poses with valid position but invalid orientation to valid poses
2020-09-11 18:51:58 +02:00
Christoph Haag
6cce04f8d3
aux/space: fix typo: propagate tracked orientation bit properly
2020-09-09 14:51:06 +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
eaffa05a37
xrt: Remove acceleration components from xrt_space_relation
2020-09-07 23:36:34 +01:00
Jakob Bornecrantz
5a4d45bbaa
m/base: Remove old space relation functions
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
855b2005f3
c/main: Use new xrt_space_graph
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
d60cce8977
st/oxr: Use new xrt_space_graph
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
74690a2278
d/psmv: Rotate angular velocity to be in base space
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
f9905a4007
d/psmv: Use space graphs for poses
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
fe94dec5ea
m/space: Space graph functions
2020-09-07 23:33:25 +01:00
Jakob Bornecrantz
ca91695722
m/quat: Add math_quat_rotate_derivative
2020-09-07 16:14:46 +01:00
Jakob Bornecrantz
4d85db6051
xrt: Add xrt_space_graph
2020-09-07 16:14:46 +01:00
Moses Turner
0ff1865c2e
d/ns: Add version 2 config support
2020-09-07 11:35:24 +01:00
Jakob Bornecrantz
ea6374d296
d/dummy: Minor comments
2020-09-06 22:53:10 +01:00
Jakob Bornecrantz
09bcf6c9d2
t/ctl: Fix typo
2020-09-06 21:58:34 +01:00
Jakob Bornecrantz
4f94ee0c91
u/render_timing: Improve debug printing
2020-09-04 13:48:40 +01:00
Christoph Haag
4a1d8b3a41
xrt: Fix vive input defines
2020-09-04 01:46:47 +02:00
Jakob Bornecrantz
787c104339
d/psmv: Use last package timestamp for input changes
2020-09-02 22:08:01 +01:00
Jakob Bornecrantz
328f5d5315
m/base: Add math_quat_invert
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
511a51b283
m/3dof: Rename to timestamp
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
8cdfe0e694
m/fifo: Add f64 filter fifo
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
991c9029c7
m/3dof: Tweak values
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
736fa81349
m/3dof: Add vars tracking helper function
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
33f05c7bea
m/vec3: Add C++ operators
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
d396117a39
m/vec2: Add C++ operators
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
2d8a39b731
d/v4l2: Set correct name on variable tracker
2020-09-02 18:36:47 +01:00
Jakob Bornecrantz
ffa888a575
d/v4l2: Use different tweaks depending on capture type
2020-09-02 11:57:47 +01:00
Jakob Bornecrantz
6846ab7637
xrt: Add stream capture type
2020-09-02 11:52:59 +01:00
Christoph Haag
330279d330
d/psvr: Set positional tracking bit when tracker is present
2020-09-01 17:03:55 +02:00
Christoph Haag
cde94cc8a2
build: Remove libv4l2 dependency from meson
...
We use the linux/v4l2-common.h header to access v4l devices, not libv4l from v4l-utils.
2020-08-28 12:10:53 +00:00
Pete Black
3f197eeffd
t/psmv: Use the same filtering as in PSVR tracker
2020-08-28 11:38:03 +00:00
Pete Black
76a439bd59
t/psvr: Add a functional PSVR tracker
2020-08-28 11:38:03 +00:00
Pete Black
3fdce20afd
d/psvr: Only power on front LEDs
2020-08-28 11:38:03 +00:00
Jakob Bornecrantz
b3c5bf1517
math: Add a permutation library
2020-08-28 11:38:03 +00:00
Jakob Bornecrantz
d3b224275c
u/logging: Fix return of debug_get_log_option_SUFFIX
2020-08-28 11:38:03 +00:00
Pete Black
751fdb2884
u/render_timing: Paranoia
2020-08-28 11:38:03 +00:00
Pete Black
20ee4114b0
xrt: Fix typo in comment
2020-08-28 11:38:03 +00:00
Jakob Bornecrantz
233ca93569
t/ctl: Print devices as well
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
5c08dc1617
t/ctl: Refactor connection opening
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
691881f507
t/ctl: Implement device IO toggling
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
7b9d7091bd
t/ctl: Refactor code to make more tidy
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
4e6a137c62
ipc: Make it possible to toggle inputs on and off
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
557dacbb02
st/oxr: Special case the any path for pose actions
2020-08-28 10:34:19 +00:00
Jakob Bornecrantz
deb5633bf9
d/psmv: Introduce proper grip and aim poses
...
Correctly rotate the grip pose to follow the spec more closely.
2020-08-27 10:42:05 +01:00
Ryan Pavlik
ff603d3acd
st/oxr: Add layer type conditionals around depth-image manipulation
2020-08-26 12:28:43 -05:00
Ryan Pavlik
2ac0013e25
st/oxr: Verify that the compositor created can actually do the layer types claimed.
2020-08-26 12:28:35 -05:00
Ryan Pavlik
9d19ab2755
u/misc: Improve docs of calloc macros.
2020-08-26 11:26:46 -05:00
Ryan Pavlik
cb26f7255c
comp: Use the correct calloc macro
2020-08-26 11:25:43 -05:00
Ryan Pavlik
b944b82f3c
ipc: Fix build on Android.
2020-08-26 16:31:41 +01:00
Ryan Pavlik
581f59a2eb
vk: Add an Android function to the vk_bundle
2020-08-26 16:31:38 +01:00
Jakob Bornecrantz
516212fef4
c/main: Test if a format is supported before adding to list
2020-08-26 14:28:10 +00:00
Jakob Bornecrantz
62fd80ff8d
aux/vk: Print a little bit more when failing on usage
2020-08-26 14:28:10 +00:00
Jakob Bornecrantz
cac588bbf2
st/oxr: Get maximum layers from the compositor info
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
1eaf4baf91
c/main: Support 16 layers
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
1309164303
xrt: Add max layers supported by a compositor
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
1496262564
xrt: Constify compositor interface
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
777add8f9e
xrt: Tidy some comments
2020-08-26 15:25:00 +01:00
Christoph Haag
8377655128
comp: Handle skipping rendering of infinite cylinder properly
...
* Setting visibility to none will make the compositor skip rendering this layer
* But do fill in some information in like layer type to ease debugging
2020-08-26 15:59:54 +02:00
Christoph Haag
aecfdfc9f9
comp: Fix typo in switch statement
2020-08-26 15:59:54 +02:00
Jakob Bornecrantz
16b9dc13e2
xrt: Correct assert for ipc data type
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
bf9f0e6e39
st/oxr: Use the right depth projection function
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
cd6a237b4a
c/client: Add support for depth projection
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
8356308bf9
c/main: Add support for depth projection
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
9bd725a800
xrt: Add missing xrt_comp_layer_stereo_projection_depth
2020-08-25 14:55:43 +01:00
Christoph Haag
2cd010b65f
st/oxr: Verify that projection layer has 0 or view count depth layers
2020-08-24 12:29:47 +02:00
Christoph Haag
a9193b0e89
st/oxr: Pass through depth layer to compositor
...
The compositor does not make use of this layer yet.
2020-08-24 10:30:23 +02:00
Christoph Haag
4f2d421903
st/oxr: Verify depth layer
2020-08-24 10:30:23 +02:00
Christoph Haag
6dc4a1f237
aux/vk: Report appropriate errors on unsupported image usage flags
2020-08-24 10:18:12 +02:00
Christoph Haag
092dddc2da
comp: Support Vk and GL depth and depth stencil formats
...
For now add only the depth formats mandated by OpenGL to maximize the
chances of the Vulkan driver supporting a reasonable set of usage flags
for the formats.
2020-08-24 10:18:12 +02:00
Christoph Haag
5a854fc806
st/oxr: projection layer swapchain NULL check
2020-08-24 10:18:12 +02:00
Jakob Bornecrantz
1914a2ee93
ipc: Tidy
2020-08-21 18:17:18 +01:00
Jakob Bornecrantz
fba9f2532c
c/client: Fix warning and tidy
2020-08-21 18:17:12 +01:00
Jakob Bornecrantz
a4693f3162
st/oxr: Include m_mathinclude.h and tidy includes
2020-08-21 12:18:09 +01:00
Christoph Haag
094a9008c9
comp: Add cylinder layer implementation
2020-08-21 02:24:48 +02:00
Christoph Haag
370f6820aa
m: Generalize math_matrix_4x4_quad_model, making scaling a vec3
2020-08-21 02:11:03 +02:00
Christoph Haag
8a17481301
st/oxr: handle subimage rect in submit_cylinder_layer
2020-08-21 02:11:03 +02:00
Christoph Haag
3122e2d073
comp: Use define for number of plane vertices
2020-08-21 02:11:03 +02:00
Christoph Haag
fbe390813c
vk: Add update_buffer helper function
2020-08-21 02:11:03 +02:00
Christoph Haag
cf5596adba
comp: Use CLAMP_TO_EDGE for swapchains
...
Avoids sampling black at the edges of layers.
2020-08-21 02:09:20 +02:00
Christoph Haag
6c084e2cbf
build: Add build support for cube, cylinder and equirect layers to meson
2020-08-21 02:09:20 +02:00
Ryan Pavlik
3b8c8ddc1a
xrt: Move the android globals functionality to the new android aux lib.
2020-08-19 16:07:00 -05: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
a57507518d
aux/android: New aux library, add image allocator for Android
2020-08-19 16:06:30 -05:00
Ryan Pavlik
fa34c65ed3
xrt: Make xrt_image_native::size optional.
...
Not all allocators can supply it.
2020-08-19 16:06:30 -05:00
Ryan Pavlik
640f24438d
comp/client: Clean up commented-out code.
2020-08-19 16:06:30 -05:00
Ryan Pavlik
c49ccd7b46
comp/client: Improve EGLimage-based swapchain
2020-08-19 16:06:30 -05:00
Ryan Pavlik
3250617dcb
comp/client: Use new texture target utility for OpenGL
2020-08-19 16:06:30 -05:00
Ryan Pavlik
e48f68deb6
aux/ogl: Add helper header for OpenGL.
2020-08-19 16:06:30 -05:00
Ryan Pavlik
6600e738a3
ipc: Fix loop conditions in loopback allocator
2020-08-19 11:01:49 -05:00
Ryan Pavlik
521de8ecfd
comp: Add a URL for sample Android EGL code.
2020-08-19 11:01:49 -05:00
Ryan Pavlik
54149b12b9
st/oxr: Handle the android extension
2020-08-19 11:01:12 -05:00
Ryan Pavlik
430f79a7ca
aux/util: Add u_android for global state.
2020-08-19 11:01:10 -05:00
Christoph Haag
cd05c86c59
d/ns,rs: Add external slam tracking type
2020-08-19 14:46:55 +02: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
Christoph Haag
7fb0af90de
xrt: Add tracking system type for Hydra
2020-08-19 11:06:28 +00:00
Christoph Haag
23bd6a4377
xrt: Add tracking system type for Lighthouse
2020-08-19 11:06:28 +00:00
Jakob Bornecrantz
8a4db7b3ef
st/oxr: Make sure that an identity transform is only inserted when needed
2020-08-18 19:44:26 +01:00
Jakob Bornecrantz
1109bc7cfb
st/oxr: Better logging when creating transforms
2020-08-18 19:43:27 +01:00
Jakob Bornecrantz
25c78287a2
st/oxr: Slightly better logging when we fail to transform
2020-08-18 17:06:07 +01:00
Jakob Bornecrantz
a3c4cba7f5
st/oxr: Reject bindings that we can't transform
2020-08-18 17:06:07 +01:00
Ryan Pavlik
00abdb358a
st/oxr: Proper gles support for Android
2020-08-17 17:30:33 -05:00
Christoph Haag
08ed44b22c
d/vive,survive: Manually improve values for Valve Index display
...
These values are hand picked to provide a less stretchy image.
2020-08-17 22:07:22 +02:00
Christoph Haag
518728156b
d/northstar: Set positional tracking bit true when built with RS support
2020-08-17 11:51:38 +00:00
Jakob Bornecrantz
132b0c541d
d/rs: Use a thread to get the poses
...
Tested by moses from Discord.
2020-08-17 11:58:18 +01:00
Christoph Haag
0a667281f9
st/oxr: Print invalid quaternion values in xrLocateView
...
Gives a hint whether it was zeroed, almost normalized, or not normalized at all.
2020-08-17 12:39:08 +02:00
Ryan Pavlik
54dbb4d128
st/oxr: Use the XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING code added in OpenXR 1.0.11.
2020-08-14 17:42:19 -05:00
Ryan Pavlik
2c126e08ff
st/oxr: Handle XRT_ERROR_IMAGE_CREATE_FLAG_UNSUPPORTED from compositor.
2020-08-14 19:58:01 +00:00
Ryan Pavlik
6820a7851d
comp/main: Refuse to create a swapchain if protected content bit requested.
2020-08-14 19:58:01 +00:00
Ryan Pavlik
33c20b1a65
inc/xrt: Add a new xrt_result_t code, for when we don't support the specified image flags.
...
If we don't support protected content (and our compositor doesn't),
we are to error out in a specific way in OpenXR. This permits us to do so.
2020-08-14 19:58:01 +00:00
Jakob Bornecrantz
4b5d25dc33
c/main: Stub in code for cube, cylinder and equirect layers
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
1292173b5e
c/client: Add support for cube, cylinder and equirect layers
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
4754dcd11b
ipc: Add support for cube, cylinder and equirect layers
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
8846c88eb1
st/oxr: Implement cylinder layer
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
7eeab2aca6
st/oxr: Implement the layer verification functions
2020-08-14 19:15:02 +00:00
Ryan Pavlik
bf37b9d999
comp: Use u_logging in some EGL code.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
a6b6ab8e2c
ipc: Fix conditionals about handle types.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
1bd2c66aa2
comp: Port to using u_handles
2020-08-13 17:34:05 -05:00
Ryan Pavlik
e092345292
aux/vk: Port to using u_handles
2020-08-13 17:34:05 -05:00
Ryan Pavlik
129c1a9ac4
a/util: Add u_handles module.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
ab4ceee720
comp: Save/restore the correct texture binding on Android
2020-08-13 17:34:05 -05:00
Ryan Pavlik
e52539d1a3
aux/vk: Fix compile time conditionals
2020-08-13 17:34:05 -05:00
Ryan Pavlik
f9a613a349
comp: Fix compile-time conditionals
2020-08-13 17:34:05 -05:00
Ryan Pavlik
c5d1dec60c
comp: Move GLAD loading and extension checking to places with more information.
...
They will be sure to load the right combination.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
3cfdfbde60
inc/xrt: Tighten requirements for AHardwareBuffer usage.
...
Needs to be building for platform 26+ (Android 8.0 or newer)
2020-08-13 17:34:05 -05:00
Ryan Pavlik
9087d1c7a9
xrt: Use our generic graphics buffer typedefs all over.
...
This adds some Android support in composition clients,
and fixes the breakage from 2 commits ago.
Thanks to Jakob for finding my error in an earlier version.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
fc73ba0401
comp: Split OpenGL[ES] swapchain 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
01dcf59c53
xrt: Add new image native allocator interface
2020-08-12 15:24:48 +01:00
Jakob Bornecrantz
38703fc1d2
st/oxr: Add plumbing for layers
2020-08-11 01:51:24 +01:00
Jakob Bornecrantz
4a8ac6ebed
cmake: Add build flags for OpenXR layers
2020-08-11 01:48:31 +01:00
Jakob Bornecrantz
71e10fafcd
c/main: Fix warnings with asserts
2020-08-11 01:48:31 +01:00