Lubosz Sarnecki
e3df2f9940
st/oxr: Add GLES Android session boilerplate.
2020-10-28 12:12:31 -05:00
Jakob Bornecrantz
7bcdf0de40
st/prober: Depend on remote driver as we reference it directly
2020-10-26 20:35:18 +00:00
Jakob Bornecrantz
f868f61a17
st/oxr: Improve verification of XrGraphicsBindingEGLMNDX
2020-10-26 14:05:27 +00:00
Jakob Bornecrantz
7ba4bee439
st/oxr: Minor fixes for oxr_session_egl
2020-10-26 14:03:30 +00:00
Jakob Bornecrantz
ebfd984c12
st/oxr: Fix missing semicolons
2020-10-26 14:03:30 +00:00
Jakob Bornecrantz
f9443cf362
st/oxr: Timeout minimum duration pulses after 0.1 seconds
2020-10-26 14:03:30 +00:00
Lubosz Sarnecki
1227c77556
st/oxr: Add equirect2 verify and submit functions.
2020-10-26 01:34:10 +00:00
Jakob Bornecrantz
fd5cfbe9a7
st/oxr: Fix state changes errors
2020-10-20 19:28:57 +01:00
Jakob Bornecrantz
2528583c55
xrt: Add git tag/description
2020-10-20 17:43:11 +01:00
Jakob Bornecrantz
9440a9dd93
st/prober: Add remote loading
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
27abc58d51
st/prober: Add the concept of active config to config file
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
a122b4b0b2
st/prober: Refactor out adding functions.
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
541bdd2fce
st/gui: Add remote device control ui
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
0cf3c704b6
st/oxr: Add simple controller bindings
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
a200bd5fec
st/oxr: Add option to disable printing to stderr
2020-10-15 01:45:51 +00:00
Jakob Bornecrantz
71e05fc21d
st/oxr: Improve pose sub-path handling
...
If the client only supplies the 'any' path no sub-path would be
selected in the 'any' cause.
2020-10-15 01:45:51 +00: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
Ryan Pavlik
5522c7317a
st/oxr: Replace __typeof__ usage with portable syntax.
...
Needed for building on MSVC
2020-10-08 17:26:22 -05:00
Jakob Bornecrantz
942ba178a0
st/oxr: Add extension support for XR_KHR_composition_layer_equirect2
2020-10-05 16:45:48 +01:00
Jakob Bornecrantz
02b33c668b
st/oxr: Destroy client compositor when session is destroyed
...
Fixes #99
2020-10-04 13:04:57 +01:00
Jakob Bornecrantz
9dd8bfef28
st/oxr: Use xrt_comp_native_destroy helper
2020-10-04 13:04:55 +01:00
Jakob Bornecrantz
2aaa3acfdf
st/oxr: Do not destroy native compositor in sub-classed session creation functions
...
So it's owned by the instance.
2020-09-24 19:07:01 +01:00
Jakob Bornecrantz
6961bf885f
st/oxr: Don't create a new native compositor in android session
...
Spotted by Jarvis.
2020-09-24 19:06:51 +01:00
Christoph Haag
3d0235a450
st/prober: Fix build with v4l2 disabled
2020-09-21 20:21:56 +02:00
Jakob Bornecrantz
9ebf1c4d4d
st/oxr: Fix warning
2020-09-18 20:51:31 +01:00
Ryan Pavlik
6af00ed8db
u/file: Stub out Linux path manip code.
2020-09-18 18:27:46 +01:00
Ryan Pavlik
7e600dd244
build: Adjust/fix missing dependencies
2020-09-18 18:25:27 +01:00
Ryan Pavlik
6779b1c0f8
st/p: Fix include of libusb
2020-09-18 18:25:27 +01:00
Ryan Pavlik
b71f13c582
st/p: Tighten preprocessor conditionals for non-Linux
2020-09-18 18:25:15 +01:00
Ryan Pavlik
dae3ab3a4f
xrt: Be sure to include config headers
2020-09-18 13:56:24 +01:00
Ryan Pavlik
a0c8839a71
xrt: Remove un-needed includes of unistd
2020-09-18 13:56:16 +01:00
Jakob Bornecrantz
c411caf0cd
st/oxr: Fix return length from oxr_action_get_input_source_localized_name
2020-09-17 23:04:37 +01:00
Jakob Bornecrantz
4a62e88f09
st/oxr: Return identifier name for bindings
2020-09-17 23:04:37 +01:00
Jakob Bornecrantz
b6786f5bfc
st/oxr: Return controller name for bindings
2020-09-17 15:28:59 +01:00
Jakob Bornecrantz
33713c790c
st/oxr: Correctly return sub path for input source
2020-09-17 00:26:12 +01:00
Jakob Bornecrantz
0fc4cdcd0f
st/gui: Get the number of samples in a fifo for graph
2020-09-16 17:27:16 +01:00
Bart Ribbers
71f912ffc5
Fix compilation on Musl
...
Without this fix, compilation failed on Musl due to ssize_t being an
unknown type
In file included from ../src/xrt/state_trackers/prober/p_prober.c:15:
../src/xrt/state_trackers/prober/p_prober.h:67:2: error: unknown type name 'ssize_t'
67 | ssize_t interface;
| ^~~~~~~
2020-09-16 10:44:06 +02:00
Jakob Bornecrantz
f7ff6c08ed
st/gui: Plot vec3_f32 filter fifos
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
468f72d62f
st/gui: Include ImPlot and Monado-ImGui in gui_imgui header
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
f843c59c37
imgui: Add ImPlot
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
36ea1825bf
imgui: Update to 1.78
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
3ffa40c628
u/var: Refactor how variables info is passed
2020-09-15 16:41:07 +00:00
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
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
844daee844
st/oxr: Check xrLocateViews quaternion only if orientation valid
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
eaffa05a37
xrt: Remove acceleration components from xrt_space_relation
2020-09-07 23:36:34 +01:00
Jakob Bornecrantz
d60cce8977
st/oxr: Use new xrt_space_graph
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
6846ab7637
xrt: Add stream capture type
2020-09-02 11:52:59 +01: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
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
Jakob Bornecrantz
cac588bbf2
st/oxr: Get maximum layers from the compositor info
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
bf9f0e6e39
st/oxr: Use the right depth projection function
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
5a854fc806
st/oxr: projection layer swapchain NULL check
2020-08-24 10:18:12 +02:00
Jakob Bornecrantz
a4693f3162
st/oxr: Include m_mathinclude.h and tidy includes
2020-08-21 12:18:09 +01:00
Christoph Haag
8a17481301
st/oxr: handle subimage rect in submit_cylinder_layer
2020-08-21 02:11:03 +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
54149b12b9
st/oxr: Handle the android extension
2020-08-19 11:01:12 -05: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
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
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
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
Jakob Bornecrantz
38703fc1d2
st/oxr: Add plumbing for layers
2020-08-11 01:51:24 +01:00
Jakob Bornecrantz
1e3508d2ce
st/oxr: Fix crash in oxr_session_poll in headless mode
...
Spotted and reported by svillar (IRC).
2020-08-10 16:49:20 +01:00
Christoph Haag
e48c748a57
xrt: suggest correct GPU in xrGetVulkanGraphicsDevice()
...
As before, on the service side the GPU index the compositor runs on can be selected with
* XRT_COMPOSITOR_FORCE_GPU_INDEX=INDEX1
By default xrGetVulkanGraphicsDevice() will suggest the same GPU the compositor runs on.
It is also possible to override the GPU index suggested to applications with
* XRT_COMPOSITOR_FORCE_CLIENT_GPU_INDEX=INDEX2
The reason this is both done on the service side is that if compositor and client run
on different GPUs, the swapchains use linear tiling instead of optimal tiling.
To make chosen GPUs comparable across the compositor's and the client's vulkan instance,
VkPhysicalDeviceIDProperties.deviceUUID is used.
2020-08-07 17:01:13 +02:00
Jakob Bornecrantz
b7977424fc
st/oxr: Get viewport information from the native compositor
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
adc6ca8e8a
c/main: Fill out all of the compositor info struct
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
Jakob Bornecrantz
fb9ebe8b88
st/oxr: Add support for MND_swapchain_usage_input_attachment_bit
2020-08-06 14:28:23 +00:00
Ryan Pavlik
574631166f
st/p: Downgrade an "error" message to a "debug" message.
...
This message is always triggered on my machine by v4l2loopback.
2020-08-05 11:12:16 -05:00
Christoph Haag
c019fce797
st/oxr: Don't crash when native compositor creation fails
...
fixes crash and exits gracefully after
compositor_init_swapchain - Window init_swapchain failed!
XR_ERROR_INITIALIZATION_FAILED in xrCreateSession: Failed to create a native compositor '-1'
2020-08-04 22:32:58 +02:00
Christoph Haag
5d4a49a1c7
st/oxr: Actually return invalid path error in sync actions
2020-08-03 19:00:17 +02:00
Christoph Haag
d06f1c9ef9
st/oxr: error when sync with subactionpath that no action has
2020-08-03 19:00:17 +02:00
Christoph Haag
983665d95c
st/oxr: Respect action set priority for exact matching inputs
...
* Only suppress action when synced actionset has relevant subpath
2020-08-03 19:00:02 +02:00
Christoph Haag
4c8e3eb95f
st/oxr: Don't return early when not using 'any' subpath
...
'any' is only set when xrSyncActions was called with XR_NULL_PATH.
When only left or right is set, the already existing following code does the job.
2020-08-03 18:59:56 +02:00
Jakob Bornecrantz
9ae720b9d4
xrt: Add all remaining swapchain creation flags
2020-07-29 14:46:17 +01:00
Ryan Pavlik
b70d14f6b0
st/oxr: Convert some more missed subaction path iterations to x-macro usage.
...
Also make Doxygen expand macros so that these usages still result
in reasonable developer docs.
2020-07-23 15:40:18 -05:00
Ryan Pavlik
a9a502952a
st/oxr: Fix multiplicity of bound_path per action.
...
Thanks to @haagch for the start of this patch.
2020-07-23 14:34:38 -05:00
Ryan Pavlik
ae59a3ce15
st/oxr: Add design documentation for OpenXR input subsystem.
2020-07-23 14:29:12 -05:00
Ryan Pavlik
5ba5e6b03b
st/oxr: Fix typo
2020-07-23 12:50:17 +01:00
Ryan Pavlik
a04c162ab3
st/oxr: Centralize the lists of subaction paths using x-macros.
2020-07-22 16:00:23 -05:00
Christoph Haag
138fcc49d8
st/oxr: Fix haptic actions being disabled
...
fixes d226a60a
2020-07-22 00:45:44 +02:00
Jakob Bornecrantz
7818a5b9cf
st/oxr: Implement xrEnumerateBoundSourcesForAction
2020-07-21 22:41:13 +00:00
Jakob Bornecrantz
9f684dbc21
st/oxr: Add a very ugly stub implementation of xrGetInputSourceLocalizedName
2020-07-21 22:41:13 +00:00
Jakob Bornecrantz
53a0646e24
st/oxr: Add better verification in xrGetInputSourceLocalizedName
2020-07-21 22:41:13 +00:00
Jakob Bornecrantz
5e629b3437
st/oxr: Tidy header
2020-07-21 22:41:13 +00:00
Christoph Haag
d226a60aac
st/oxr: Combine input values
...
This enables binding two different inputs to the same action, for example
/user/hand/left/input/select/click and /user/hand/left/trigger/click to
the same grab action.
Also takes care of using the correct timestamp of the input that is
responsible for the last overall value change.
2020-07-21 20:59:07 +02:00
Jakob Bornecrantz
b87fd91bc8
st/oxr: Send XrEventDataInteractionProfileChanged events on interaction profile changes
2020-07-20 19:52:31 +01:00
Jakob Bornecrantz
56386aa1d7
st/oxr: Implement needed checks for xrGetCurrentInteractionProfile
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
b0593d7012
st/oxr: Better error message for unhandled case in xrGetCurrentInteractionProfile
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
18957e0636
st/oxr: Fix the any handiness controllers not getting assigned to right
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
9f11287fa3
st/oxr: A slightly better stub implementation of xrEnumerateBoundSourcesForAction
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
b93017911e
xrt: Make xrt_compositor::create_swapchain return xrt_result_t
2020-07-20 13:50:01 +00:00
Christoph Haag
f18c190eaa
st/oxr: Check if relating space to itself first
2020-07-20 15:41:17 +02:00
Christoph Haag
ddb528f002
st/oxr: Support locating stage space in local space
...
And the other way around.
Fixes hello_xr -s Local, which renders cubes at offset stage space locations,
relative to local space.
2020-07-20 14:05:31 +02:00
Christoph Haag
164eda38d4
st/oxr: use initial head pose as local space origin
...
Implements local space in xrLocateViews, xrLocateSpace, and Quad layers in xrEndFrame.
2020-07-19 23:55:20 +02:00
Ryan Pavlik
6f56d91c05
xrt: Add separate build config for OpenGL ES
2020-07-17 15:17:42 -05:00
Ryan Pavlik
4c5b38c836
st/oxr: Clean up GL/GLES image enumeration a bit for easier maintenance
2020-07-17 13:53:39 -05:00
Ryan Pavlik
852c9b589d
st/oxr: Handle Android better.
2020-07-17 13:53:39 -05:00
Ryan Pavlik
4220638afd
xrt: use _USE_MATH_DEFINES to make sure M_PI gets defined.
2020-07-17 13:53:39 -05:00
Christoph Haag
eb355f3643
st/oxr: Handle quad layer with reference space as base space again
...
fixes d64ef3df
2020-07-17 13:10:20 +02:00
Christoph Haag
d64ef3df74
st/oxr: Basic support for ActionSpace as base space in QuadLayer
2020-07-16 20:02:05 +00:00
Ryan Pavlik
1aa2cdb89a
build: Move determination of Vulkan usage to build system.
...
Vulkan is still required for most actual uses of Monado, but this
makes the coupling weaker.
2020-07-16 10:17:30 +00: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
Jakob Bornecrantz
c37dd46b0c
st/prober: Rework HMD logic a bit and put HMD always in first position
2020-07-14 12:55:18 +01: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
Jakob Bornecrantz
c5b930903e
st/oxr: Fix conformance failure and tidy up action set attached logic
...
This caused a action set to act as if it has been attached, one might say that
this commit fixes a overly attached action set.
Extreme programmed with Ryan Pavlik, which I also ~~stole~~ borrowed the header
comments from verbatim.
2020-07-06 20:11:35 +01:00
Jakob Bornecrantz
59b7bdeee0
st/oxr: Properly name MNDX_ball_on_a_stick_controller
2020-07-06 11:58:42 +01:00
Jakob Bornecrantz
fd8e19718c
st/oxr: Reorder extension in prefix order
2020-07-06 11:42:16 +01:00
Jakob Bornecrantz
8a1c74338c
st/oxr: Make script be up to date to what's generated
2020-07-06 11:42:16 +01:00
Jakob Bornecrantz
8ee7086ea6
xrt: Introduce xrt_swapchain_create_info
2020-07-04 11:04:07 +00:00
Jakob Bornecrantz
ad266672f4
st/gui: Add a special UI for setting log level vars
2020-07-03 19:26:45 +01:00
Jakob Bornecrantz
9848f8b4b8
u/var: Add log level tracker
2020-07-03 19:01:55 +01:00
Christoph Haag
184dd277bf
bindings: Fix Index squeeze/force binding declaration
2020-07-01 18:36:41 +02:00
Christoph Haag
c6d25a9773
st/oxr: Convert action timestamp with time_state_monotonic_to_ts_ns
...
Action timestamps were missing this conversion to XrTime with time_state_monotonic_to_ts_ns()
which caused them to be out of sync with the predicted frame times and device "pose at" timestamps.
2020-06-26 01:41:08 +02:00
Christoph Haag
b7ea0ce2b3
st/oxr: Support next-chained XrSpaceVelocity in XrSpaceLocation
2020-06-26 01:41:08 +02:00
Pete Black
bd5aa24463
xrt: Add multi client and overlay client support
2020-06-25 15:48:34 +01:00
Jakob Bornecrantz
3275f00464
st/oxr: Use a semaphore to ensure wait frame is released after begin frame has been called
2020-06-23 21:31:03 +01:00
Jakob Bornecrantz
b75f4f844b
xrt: Add frame_id to compositor frame calls
2020-06-23 21:31:00 +01:00
Ryan Pavlik
726e446421
st/oxr: Make sure to clear action state metadata in case input is not active.
...
Also addresses some review comments on earlier changes.
2020-06-17 17:27:59 -05:00
Jakob Bornecrantz
5443e3a069
st/oxr: Work around stict-aliasing warning (NFC)
2020-06-17 12:20:30 +01:00
Christoph Haag
7a1dbbe8a1
st/oxr: Ensure quaternion is normalized in xrLocateViews()
...
In rare cases the state tracker's pose transformations resulted in a quaternion
that accumulated float precision errors such that the norm of the quaternion was
not within float precision of 1.0 anymore.
Introduce a function math_quat_ensure_normalized() that can be used after multiple
operations have been performed on a quaternion.
2020-06-17 13:03:34 +02:00
Jakob Bornecrantz
17f40ecc26
st/oxr: Use the transformed boolean value
2020-06-17 11:48:43 +01:00
Ryan Pavlik
1a5d31b82b
st/oxr: New input transform implementation, fixes conformance failures.
...
Includes unit tests for oxr_input_transform, add to CI
This is a revised implementation using "variants" instead of
"inheritance" in a linked-list.
2020-06-17 10:03:32 +00:00
Ryan Pavlik
adbafad079
st/oxr: Rename the remaining oxr_source things to oxr_action
2020-06-16 16:42:38 -05:00
Jakob Bornecrantz
abf8d5b8bd
st/oxr: More correctly handle spaces for layers
2020-06-15 23:59:04 +00:00
Ryan Pavlik
1738329138
st/oxr: Give oxr_action and oxr_action_set ref-counted backing data
2020-06-15 18:11:33 -05:00
Ryan Pavlik
640fa1bbe5
st/oxr: Rename the action set and action keys to distinct names.
2020-06-15 17:09:20 -05:00
Ryan Pavlik
2f8d1a54a5
st/oxr: Reparent action set/action attachment.
...
They are no longer a linked list and a handle, but simple dynamic arrays.
2020-06-15 17:09:15 -05:00
Ryan Pavlik
894aa8d61f
st/oxr: Rename some types, functions, and variables for clarity
2020-06-15 17:08:05 -05:00
Ryan Pavlik
6fe801e766
st/oxr: Re-use a structure
2020-06-15 17:04:00 -05:00
Ryan Pavlik
6be05e2107
st/oxr: Factor out source cache teardown function
2020-06-15 17:04:00 -05:00
Ryan Pavlik
4a4bed8df4
st/oxr: Handle treadmill user path
2020-06-15 17:04:00 -05:00
Ryan Pavlik
2a2157af66
st/oxr: Clean up comments
2020-06-15 10:46:29 -05:00
Jakob Bornecrantz
cbb91904e9
st/oxr: Remove old validation that's now done in api function
2020-06-14 23:01:13 +01:00
Jakob Bornecrantz
2dcf4a819b
st/oxr: Improve xrSuggestInteractionProfileBindings validation of input
2020-06-14 23:01:13 +01:00
Jakob Bornecrantz
e4a4a5e7b2
st/oxr: Use correct enum type when converting from eye visibility NFC
2020-06-13 13:58:14 +01:00
Jakob Bornecrantz
45c977d199
xrt: Introduce xrt_sub_image and xrt_layer_projection_view_data
2020-06-09 20:32:53 +01:00
Jakob Bornecrantz
259bd52dbd
st/oxr: Convert layer bits from OpenXR to XRT
2020-06-09 19:04:48 +00:00
Jakob Bornecrantz
55e026245a
xrt: Use new xrt_layer_data in layer functions
2020-06-09 19:04:48 +00:00
Ryan Pavlik
435f6c5c89
build: Allow enabling inter-procedural optimization in CMake builds, if supported.
2020-06-09 12:03:08 -05:00
Christoph Haag
bc995e3aab
ipc: Return XR_ERROR_INSTANCE_LOST instead of SIGABRT on the client side
2020-06-05 16:06:32 +02:00
Christoph Haag
cc9b415a8f
xrt: Add xrt_result_t return type to many functions
...
Many functions returned void and were assumed to always succeed, and some functions
returned only a bool to indicate vague success/failure.
Now that these functions get piped over IPC all of them have to be able to indicate
an IPC failure like for example an unreachable service.
With the xrt_result_t return type they now have the opportunity to report various
types of failures.
2020-06-05 16:06:32 +02:00
Jakob Bornecrantz
dab96ef356
st/oxr: Validate view configuration type
2020-06-04 21:56:08 +00:00
Ryan Pavlik
c39df58763
st/oxr: Additional doxygen improvements.
2020-06-03 17:26:35 -05:00
Ryan Pavlik
bc6cc85e7d
xrt: Improve doxygen documentation.
2020-06-03 16:28:18 -05:00
Jakob Bornecrantz
9f8761bd50
st/oxr: Tiny improvement to validation message
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
3fde4a0651
st/oxr: Update copyright in files touched by this MR
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
a5d64e6565
st/oxr: Some minor spelling changes
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
a36753443a
st/oxr: Make all oxr_error calls uniform and improve output
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
f4fadc6f55
st/oxr: Validate xrSuggestInteractionProfileBindings better
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
6ff4b23a76
st/oxr: Add a lightweight function to test for XrPath validness
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
2b60f70d30
st/oxr: Validate attachmentness of action sets and actions better
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
6fc410dadd
st/oxr: Do dup checking on actions and action sets
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
e5c9636f10
st/oxr: Correct the error messages on sub action paths errors
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
6d61b9dec2
st/oxr: Correct localized name validation
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
a69cae7516
st/oxr: Improve subImage bounds checking
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
981bae8d0a
st/oxr: Return correct error on bad sub action path
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
00818881de
st/oxr: Use correct path for gamepad
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
57af7a7ce4
st/oxr: Correctly wait with emitting sync event
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
f0e160f45c
st/oxr: Improve the xrGetReferenceSpaceBoundsRect stub-ness
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
d693bc2ef9
st/oxr: Enforce static swapchain acquire semantics
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
cdfd03a762
st/oxr: Overhaul the acquire, wait, release handling
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
b3523a7259
st/oxr: Protoct event queue with a mutex
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
76e4092e30
st/oxr: Purge event queue of destroyed sessions
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
185036489c
st/oxr: Ensure get gfx requirements has been called
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
12d78144f6
st/oxr: Verify XrViewConfigurationType in xrEnumerateEnvironmentBlendModes
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
fb867b02c3
xrt: Remove array_size field on xrt_swapchain
2020-06-02 13:02:04 +01:00
Christoph Haag
f68252bfbe
st/oxr: Check quadlayer swapchain for NULL
2020-06-01 18:38:54 +02:00
Christoph Haag
6045742561
st/oxr: Translate relation_flags in oxr_space_locate()
2020-05-29 01:46:42 +02:00
Christoph Haag
7fe0f3610b
st/oxr: Fill entire xrt_space_relation in oxr_xdev_get_pose_at, not just pose
...
In particular the relation_flags indicate whether the pose is valid or a fallback pose.
2020-05-29 01:25:57 +02:00
Christoph Haag
f10b341f57
st/oxr: Don't assert on invalid pose
...
ensure_valid_position_and_orientation() inserts fallback poses when
driver reported poses are invalid.
2020-05-29 01:09:54 +02:00
Christoph Haag
c9b692903c
st/oxr: Don't indiscriminately set orientation & position to valid in oxr_space_action_relation()
2020-05-29 01:02:31 +02:00
Christoph Haag
3bdc57c4b3
st/oxr: Don't indiscriminately set orientation & position to valid in ensure_valid_position_and_orientation()
2020-05-29 00:57:35 +02:00
Jakob Bornecrantz
03f802de77
st/oxr: Correctly validate time in xrLocateSpace
2020-05-28 22:56:59 +01:00
Jakob Bornecrantz
dd04379209
st/oxr: Now that layers are supported up the max layers to what the spec requires
2020-05-28 22:56:59 +01:00
Jakob Bornecrantz
7cd9dfabc8
st/oxr: Translate swapchain usage flags
2020-05-28 15:50:47 +01:00
Jakob Bornecrantz
23b882df08
st/oxr: Write out pose values on failure, better say which layer failed and also check projection layer poses
2020-05-28 15:50:47 +01:00
Ryan Pavlik
293ec1e6dd
st/p: Use helper functions for xrt_device
2020-05-27 18:40:56 -05:00
Ryan Pavlik
011a68704c
st/gui: Use helper functions for xrt_device
2020-05-27 18:40:56 -05:00
Ryan Pavlik
1438541147
st/gui: Port to using xrt_instance, instead of xrt_prober directly.
2020-05-27 18:40:56 -05:00
Ryan Pavlik
c42675437b
st/gui: Remove no-longer-needed timekeeping.
2020-05-27 18:40:56 -05:00
Jakob Bornecrantz
efd35da334
st/oxr: Correctly translate XrSwapchainCreateFlags
2020-05-27 21:21:00 +01:00
Jakob Bornecrantz
0aeb2ccfb2
st/oxr: Turn XrPaths into atoms
2020-05-27 21:21:00 +01:00
Jakob Bornecrantz
7cf5edbf87
st/oxr: Now that IPC correctly wait frames check predicted display for zero
2020-05-27 18:12:26 +01:00
Jakob Bornecrantz
51545411f9
st/oxr: Validate time better xrConvertTimeToTimespecTimeKHR
2020-05-27 18:12:26 +01:00
Jakob Bornecrantz
ef41cf2088
u/time: Use a very large hammer to "fix" time_state
2020-05-27 17:50:06 +01:00
Jakob Bornecrantz
4039dc7096
st/oxr: Validate some internal state and improve error message
2020-05-26 19:34:49 +01:00
Christoph Haag
41e3a6fd17
st/oxr: error on displayTime <= 0 in xrEndFrame
2020-05-26 19:34:49 +01:00
Jakob Bornecrantz
589a4ad3e9
st/oxr: Better printing of envBlendMode errors
2020-05-26 19:34:49 +01:00
Christoph Haag
4ea17ce7be
st/oxr: Always error on unsupported blend mode
...
The spec requires always returning an error if the blend mode is unsupported:
XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED must be returned if
XrFrameEndInfo::environmentBlendMode is not supported.
2020-05-26 19:34:49 +01:00
Ryan Pavlik
3624c17754
st/oxr: Fix some warnings by initializing variables.
2020-05-26 11:25:03 -05:00
Ryan Pavlik
0f7832f2c8
st/p: Fix warnings when building without OpenCV
2020-05-26 11:21:09 -05:00
Jakob Bornecrantz
98d11709fb
st/oxr: Remove head offset when submitting layers
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki
eab3cac623
st/oxr: Verify valid swapchain array index for quads.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki
8b0a43a64e
st/oxr: Test for XR_ERROR_POSE_INVALID.
...
In quad verification.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki
b1541c2d1e
st/oxr: Return XR_ERROR_SWAPCHAIN_RECT_INVALID.
...
For out of bounds imageRect offsets on quad layers.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki
1bad77efb4
st/oxr: Return XR_ERROR_SWAPCHAIN_RECT_INVALID.
...
For negative imageRect offsets on quad layers.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki
9c8d0ae3cc
xrt: Pass the flip y on layer per layer basis.
...
st/oxr: Adopt to flip y in layers change.
c/client: Adapt to flip y in layers change.
Set true for GL and false for Vulkan.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki
9349193d0c
st/oxr: Use new layer interface and accept multiple projection and quad layers.
...
Authered by Jakob Bornecrantz and Lubosz Sarnecki.
2020-05-26 11:33:58 +01:00
Jakob Bornecrantz
cea8f93892
st/oxr: Fix missed change from MNDX_egl_enable name change
2020-05-21 11:20:32 +01:00
Jakob Bornecrantz
d37f446def
st/oxr: Update openxr header and switch to XR_MNDX_egl_enable
2020-05-20 18:08:56 +00:00
Ryan Pavlik
4638b0af7b
build: Switch all CMake options to XRT_... to match what's used in source.
...
Also revise other small related parts of the build to make them more clear and consistent.
2020-05-12 11:52:51 -05:00
Lubosz Sarnecki
03074cd52e
st/oxr: Unreleased swapchain must return XR_ERROR_LAYER_INVALID.
2020-05-11 20:21:58 +01:00
Christoph Haag
5b2efcbb7a
st/prober: Fix typo in error message
2020-05-09 13:12:06 +00:00
Jakob Bornecrantz
694d978e25
st/prober: Name the tracking origin and make offset editable
2020-05-09 12:43:26 +01:00
Jakob Bornecrantz
e620fa9063
st/prober: Refactor JSON config loading so that we print less errors when we don't need the config
2020-05-07 22:25:44 +00:00
Jakob Bornecrantz
695ac70dab
st/oxr: Silence warning about uninitialized variable and add todo (NFC)
2020-05-04 18:05:13 +01:00
Christoph Haag
cf0e5d7861
st/oxr: store preferred path per binding, not per action
...
Fixes d62c2d2011
For any one action, multiple bindings may be suggested. The preferred/matched
input path depends on which binding is active.
Each bindings already stores a list of actions for which the suggested bindings
matched any of the input paths, just add a corresponding list *which* path matched.
2020-05-04 17:29:43 +02:00
Christoph Haag
2a58d1225f
bindings: Don't create broken subpath for haptic output
...
This macro created two paths for haptics, the first of which was useless/wrong:
/user/hand/*/output/haptics/
/user/hand/*/output/haptics
2020-05-04 17:29:43 +02:00
Christoph Haag
d62c2d2011
st/oxr: properly enable binding to /x and /y
...
Store Thumbstick, Trackpad etc. data internally in a vec2f.
The knowledge that a binding path ../x and ../y refers to the x and y components of this vec2f
is stored as an INPUT_REDIRECT_VEC2_X_TO_VEC1 or INPUT_REDIRECT_VEC2_Y_TO_VEC enum.
Actions now also store the index of the binding paths it matched to,
e.g. when an action binds ../trackpad/y to an input that provides bindings [../trackpad, ../trackpad/x, ../trackpad/y],
the index 2 is stored.
v2: Clarify preferred binding path index variable
2020-05-03 22:58:47 +00:00
Ryan Pavlik
53f9eb332d
st/oxr: Fix more pointer conversion warnings.
2020-04-29 17:44:07 -05:00
Ryan Pavlik
e89a3c1d8f
st/oxr: Fix 32-bit warnings when checking for null handles
2020-04-29 17:44:07 -05:00
Ryan Pavlik
d95219810e
st/oxr: Add XRT_CAST_OXR_HANDLE_TO_PTR macro
2020-04-29 17:44:07 -05:00
Ryan Pavlik
cecb8f31af
st/oxr: Add and use XRT_CAST_PTR_TO_OXR_HANDLE macro to avoid warnings.
...
Other places we do these similar conversions will need this same modification.
2020-04-29 17:44:07 -05:00
Ryan Pavlik
974c68dead
xrt: Re-arrange build to avoid unnecessary includes.
...
Avoid unintentionally including cJSON from the source tree when using system,
etc. This adds granularity to the usage of "external" sources.
2020-04-28 21:36:46 +00:00
Ryan Pavlik
4fc8d3dbea
st/gui: Fix build without OpenCV
2020-04-28 21:36:46 +00:00
Jakob Bornecrantz
b2c987945e
st/prober: Use and expose usb serial and manufacturer
2020-04-28 18:51:07 +00:00
Jakob Bornecrantz
80dd892987
xrt: Add serial and manufacturer to xrt_prober video device probing interface
2020-04-28 18:51:07 +00:00
Christoph Haag
2c818d5051
xrt: Add duration to xrt_output_value
...
The Vive Controller driver benefits from knowing the duration because
the hardware supports vibrating for a specific duration.
2020-04-28 10:22:42 +00:00
Christoph Haag
88ce6b5dcc
st/oxr: Add Vive Wand and Valve Index Controller bindings
...
v2: add vive & index haptic output to khronos/simple_controller
2020-04-28 10:22:41 +00:00
Ryan Pavlik
c191f4bc30
st/oxr: Codespell fixes
2020-04-24 15:30:46 -05:00
Jakob Bornecrantz
e37d8f4cf5
xrt: Remove timestate from xrt_device interface
2020-04-16 17:29:34 +01:00
Jakob Bornecrantz
945f2c82ed
targets: Move xrt_instance implementation into targets
2020-04-11 12:31:58 +01:00
Jakob Bornecrantz
b5354c4d83
st/gui: Remove old video test
2020-04-11 12:31:55 +01:00
Jakob Bornecrantz
57f407f02e
st/gui: Tidy CMakeLists.txt
2020-04-11 12:19:28 +01:00
Jakob Bornecrantz
85bceaceca
st/prober: Tidy CMakeLists.txt
2020-04-11 12:19:28 +01:00
Jakob Bornecrantz
c39cb39643
st/oxr: Use new xrt_instance object
2020-04-10 13:48:18 +01:00
Jakob Bornecrantz
bbc07ed5f2
st/prober: Provide a default implementation of xrt_instance interface
2020-04-10 13:48:18 +01:00
Jakob Bornecrantz
2063bc30b8
st/prober: Load tracking config from json and use new settings struct
2020-04-10 12:29:21 +00:00
Jakob Bornecrantz
a11aa689a7
st/gui: Save camera and calibration data using new settings
2020-04-10 12:29:21 +00:00
Jakob Bornecrantz
de20d87f87
xrt: Make it possible for the prober to pass in JSON data to the drivers
2020-04-10 12:29:21 +00:00
Jakob Bornecrantz
7b049a9d65
t/file: Expose non-hack version of the calibration data save function
2020-04-10 12:29:21 +00:00
Jakob Bornecrantz
9d009784b6
st/gui: Show name of device when no modes are found
2020-04-08 10:51:12 +01:00
Jakob Bornecrantz
4d7634845d
st/prober: Print serial, product and manufacturer from udev
2020-04-03 14:10:07 +01:00
Jakob Bornecrantz
96edbd9249
st/prober: Print serial, product and manufacturer from libuvc
2020-04-03 14:09:56 +01:00
Jakob Bornecrantz
9ff0ee2e6a
st/gui: Fix compilation issue with OpenCV
...
Closes #63
2020-03-25 19:59:16 +00:00
Jakob Bornecrantz
e3516061bb
u/var: Add expand RO values
2020-03-25 13:58:51 +00:00
Ryan Pavlik
377ae07e53
xrt: Add missing SPDX tags
2020-03-23 17:29:43 -05:00
Jakob Bornecrantz
6ecc1e30f3
xrt: Make stereo_camera_calibration refcounted
...
This allows the data to be safely shared and passed around, even allowing us
to tag frames with the data and passed around that way instead.
Since it now can be passed around more safely make the prober call the save
function instead of the calibration code. This then forms a basis for further
work where we can hook this up into a more proper configuration file.
2020-03-11 22:00:54 +00:00
Pete Black
b6613db5d4
d/dd: Add Daydream driver
2020-03-11 21:36:49 +00:00
Christoph Haag
de7d9de5ae
st/oxr: Fill XrViewConfigurationView with new two call helper
...
The previous two call helper macro copied the entire input struct to output struct.
In particular this did not keep the .type and .next fields intact.
Rather than trying to keep those intact, each struct type should have its own fill function,
only filling in the data we actually want to fill in.
2020-03-11 05:10:07 +01:00
Christoph Haag
e8ccb07db7
st/gui: Add compositor frame timing graph to debug ui
2020-03-09 12:59:12 +01:00
Ryan Pavlik
8548d3f7e6
build: Another missed linking fix.
2020-03-05 17:52:49 +00:00
Ryan Pavlik
71c29425d4
build: Fix linking issues preventing the OpenXR runtime from working.
2020-03-04 09:54:47 -06:00
Ryan Pavlik
92205ab5be
build: Refactor CMake build to use static libraries instead of object bundles.
...
This allows transitive dependencies to work easier and improves compatibility.
It takes a little bit more storage at build time, and possibly a little extra time.
2020-03-04 11:15:35 +00:00
Ryan Pavlik
91ba5d04bc
st/prober: Fix some unused-thing warnings when building with fewer deps.
2020-03-04 11:15:35 +00:00
Ryan Pavlik
f3eac87504
xrt: Correct usage of XRT_MAYBE_UNUSED on functions.
...
It shouldn't be used on a function marked "static inline" - that's
sufficient to avoid the warning. So, it should almost never be in
a header.
2020-03-04 11:15:35 +00:00
Ryan Pavlik
b1b08a610c
st/prober: Add missing includes
2020-03-04 11:15:35 +00:00
Ryan Pavlik
d4c5b37bc0
st/oxr: Fix 32-bit warnings
2020-03-03 10:50:41 +00:00
Ryan Pavlik
163b39b7a1
st/oxr: Fix some 32-bit porting warnings.
2020-03-03 10:33:14 +00:00
Ryan Pavlik
d7121e8df4
st/oxr: Fix the declaration of our entry points.
...
We need the attributes and calling convention to match the header
2020-03-03 10:33:14 +00:00
Jakob Bornecrantz
0619190d2b
build: Refactor how config defines are handled
...
With loads of changes from Ryan.
2020-03-03 10:33:14 +00:00
Jakob Bornecrantz
a925af90e7
xrt: Do not pass in timestate into compositor
2020-03-02 20:18:49 +00:00
Jakob Bornecrantz
aeef692e08
xrt: Refactor out main compositor creating into own interface
2020-03-02 12:00:22 +00:00
Ryan Pavlik
c590a3f69b
st/oxr: Fix segfault in conformance
2020-01-31 10:47:52 +01:00
Jakob Bornecrantz
0df88dedca
st/gui: Add support for Leap Motion Controller
2020-01-26 19:37:37 +00:00
Jakob Bornecrantz
ca06c16eeb
st/gui: Better conversion sinks
2020-01-26 19:37:37 +00:00
Jakob Bornecrantz
16eb05e089
u/sink: Make quirk sink creation parameters into a struct.
2020-01-26 19:37:37 +00:00
Jakob Bornecrantz
21ed0facb7
st/gui: Add a bit hacky pose controls
2020-01-25 16:39:57 +00:00
Jakob Bornecrantz
b3e84f9041
xrt: Make sure that auto probers can add non-HMD devices after a HMD has been found
2020-01-23 15:51:36 +00:00
Jakob Bornecrantz
c2560ae6d2
xrt: Switch to new quirking sink
...
This is done in one commit as split out they would leave the code
in a fairly broken state.
2020-01-17 14:31:50 +00:00
Jakob Bornecrantz
67d33550cf
t/calib: Change how default arguments are applied
2020-01-17 12:09:08 +00:00
Jakob Bornecrantz
8564bbec4f
st/prober: Update GUI with new truths
2020-01-16 23:04:14 +00:00
Ryan Pavlik
5592ed28da
xrt: Make vkGetInstanceProcAddr prototype available.
2020-01-16 22:37:39 +00:00
Ryan Pavlik
0df4dc2be1
st/prober: Fix typo
2020-01-16 22:37:29 +00:00
Ryan Pavlik
fcdebc6e9d
aux/tracking: Re-organize structs related to camera calibration.
...
Removes the "raw" data structures for camera calibration, not needed.
The only thing they contained beyond the revised regular structures
was derived data that the consumer might parameterize differently.
Renames t_settings_stereo to t_stereo_camera_calibration.
The calibration info is data (that could be stored on the device, etc),
not settings.
2020-01-16 09:07:52 -06:00
Ryan Pavlik
b44f14d348
st/gui: Display the calibration status data.
2020-01-14 15:55:50 -06:00
Ryan Pavlik
9790ca7602
t/calib: Add interface for getting some status info on calib process.
2020-01-14 15:55:50 -06:00
Ryan Pavlik
dec5d8de7d
st/gui: Update camera calibration config GUI
2020-01-14 15:55:50 -06:00
Ryan Pavlik
871395d5b5
build: Adjust meson build equivalently
2020-01-14 12:28:23 -06:00
Ryan Pavlik
c68d3bfe54
build: Adjust CMake build to allow actually disabling dependencies/options
2020-01-14 11:51:12 -06:00
Ryan Pavlik
f834d20300
xrt: Move OpenXR platform defines to build system
2020-01-14 11:51:12 -06:00
Ryan Pavlik
67a561d0ea
st/oxr: Fix ifdef guards
2020-01-14 11:51:12 -06:00
Jakob Bornecrantz
c383a933ea
st/oxr: Propegate device input active status through API
2020-01-13 21:59:37 +00:00
Ryan Pavlik
4cc9380f0b
st/oxr: Fix missing include.
2020-01-09 17:36:24 -06:00
Ryan Pavlik
9e953083fc
st/oxr: Move shipped binding data into a separate header to avoid re-declaration of statics
2020-01-09 17:35:54 -06:00
Ryan Pavlik
13c099f59e
xrt: Fix for mismatched parameter names
2020-01-09 22:54:01 +00:00
Christoph Haag
bc20d84171
st/oxr: Also make sure to keep actions with outputs active
2020-01-09 02:13:08 +01:00
Christoph Haag
a3d04090c5
st/oxr: Always make actions active that have inputs
...
If an applications only syncs a subset of action sets, the actions from all
sets that are not synced get the active bit reset.
Once the application starts syncing the previously not synced sets again,
the actions have to become active again.
2020-01-09 02:12:59 +01:00
Ryan Pavlik
e49fdd8523
st/oxr: EGL extension requires OpenGL enabled
2019-12-07 18:25:37 +00:00
Ryan Pavlik
51c3240c23
st/oxr: Improve extension support header.
2019-12-07 18:25:37 +00:00
Ryan Pavlik
f25b5d7f8d
st/gui: clang-tidy
2019-12-07 18:25:37 +00:00
Ryan Pavlik
06ce6617f5
st/oxr: Port logger realloc to helper macro
2019-12-07 18:24:56 +00:00
Ryan Pavlik
b47428b451
st/p: Convert to realloc macro
2019-12-07 18:24:56 +00:00
Ryan Pavlik
f6d3aabc08
st/oxr: Convert remaining realloc in binding code
2019-12-07 18:24:56 +00:00
Ryan Pavlik
2b5fa2c57f
st/p: Fix enum types in libusb usage
2019-12-07 18:24:56 +00:00
Ryan Pavlik
447b3550e8
st/oxr: Fix enum types in shipped bindings
2019-12-07 18:24:56 +00:00
Ryan Pavlik
2751824e16
st/gui: Type safety fixes
2019-12-07 18:24:56 +00:00
Ryan Pavlik
808892742b
st/p: Fix allocation size error with realloc macro
2019-12-03 09:39:06 -06:00
Ryan Pavlik
f20a0e14e0
st/oxr: Fix oversized allocation in binding code
2019-12-03 09:39:06 -06:00
Ryan Pavlik
a602b2247f
st/oxr: Fix bug in get current interaction profile.
...
We returned the path instead of putting it in the out value.
2019-12-03 09:39:06 -06:00
Jakob Bornecrantz
9b60bd7c77
t/calib: Add support to load images
2019-11-22 14:20:56 +00:00
Jakob Bornecrantz
3f202d0d6f
t/calib: Make cooldown period separate from wait period
2019-11-22 12:36:23 +00:00
Jakob Bornecrantz
86dc9e1a6b
t/calib: Re-organize parameters and make it possible to select board type
2019-11-22 12:36:23 +00:00
Jakob Bornecrantz
9a4b55758a
st/gui: Add support for mirror RGB option
2019-11-21 22:43:04 +00:00
Jakob Bornecrantz
84f9ad962c
st/gui: Tidy UI
2019-11-20 23:50:42 +00:00
Jakob Bornecrantz
ff4b91c688
st/gui: Expose fisheye option
2019-11-20 23:50:42 +00:00
Jakob Bornecrantz
dc6da46852
st/gui: Add option to save image and add separators"
2019-11-20 23:50:42 +00:00
Jakob Bornecrantz
d6317b2a14
st/gui: Expose new parameters to calibration
2019-11-20 23:50:42 +00:00
Simon Ser
c395f85565
oxr: add XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR support
2019-11-18 15:16:16 +01:00
Simon Ser
a8b2370946
xrt: accept OpenGL ES in oxr_session_populate_egl
2019-11-18 15:16:15 +01:00
Simon Ser
5eacb6f309
xrt: add support for OpenGL ES
...
This commit advertises the extension and adds support for
xrGetOpenGLESGraphicsRequirementsKHR
2019-11-18 15:16:15 +01:00
Jakob Bornecrantz
ad45aeb0a7
t/calib: Refactor loading a bit more
2019-11-17 22:09:01 +00:00
Jakob Bornecrantz
4af9978803
st/gui: Correctly destroy timekeeping
2019-11-17 20:53:18 +00:00
Jakob Bornecrantz
6d8abd87a8
t/calib: Tidy and rename calibration data to settings
2019-11-16 23:17:11 +00:00
Jakob Bornecrantz
f364b7a45b
t/calib: Make prober load calibration data instead of trackers
2019-11-16 12:17:07 +00:00
Jakob Bornecrantz
ee3d9d08f6
u/time: Send in a pointer to pointer to the timekeeping destroy function
2019-11-15 20:30:01 +00:00
Julian Eisel
05b069b0a0
Fix two use-after-free's and multiple memory leaks
2019-11-13 21:53:16 +01:00
Ryan Pavlik
882388b320
st/prober: Fix typo
2019-11-11 17:57:40 -06:00
Jakob Bornecrantz
76d6133142
cmake: Fix v4l2 flag not being set
2019-11-10 01:36:46 +00:00
Jakob Bornecrantz
a29dd8c0a4
st/oxr: Improve destruction of GUI hack
2019-11-09 12:53:42 +00:00
Jakob Bornecrantz
86244f726f
st/oxr: Improve error condition handling on instance creation
2019-11-09 12:53:42 +00:00
Christoph Haag
e78e5c8045
st/oxr: Return appropriate errors for incomplete OpenGL XLib binding
...
* xDisplay must be a pointer to a Display value
* glxDrawable must be a valid GLXDrawable value
* glxContext must be a valid GLXContext value
intentionally not checked:
* glxFBConfig must be a valid GLXFBConfig value
We don't care about this one for now.
2019-11-08 16:07:10 +01:00
Drew DeVault
e5a9cbb2f9
Implement XR_MND_egl_enable
...
This extension introduces a more robust way of creating an XrSession for
OpenGL. It also lays the groundwork for future OpenGL ES support.
https://github.com/KhronosGroup/OpenXR-Docs/pull/40
Signed-off-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Drew DeVault <sir@cmpwn.com>
2019-11-06 10:07:21 +01:00
Simon Ser
eefeec12fd
oxr: check input type in oxr_swapchain_gl_enumerate_images
...
Don't blindly cast the input struct to XrSwapchainImageOpenGLKHR, check
that the type is XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR.
2019-11-05 16:32:04 +00:00
Christoph Haag
3b87d518c4
build: Fix meson build without v4l2
2019-11-05 15:36:52 +01:00
Jakob Bornecrantz
5e3565c28f
st/oxr: Set maximum image rect size to 200%
2019-11-05 12:31:42 +00:00
Jakob Bornecrantz
defdd97288
st/oxr: Fix recommended swapchain image height
2019-11-05 12:31:42 +00:00
Jakob Bornecrantz
9eedb05f1b
st/prober: Do not autoprobe if we have a HMD
2019-11-05 12:15:56 +00:00
Simon Ser
9183f53c5f
xrt: allow NULL args in various functions
...
The spec says NULL arguments are valid when the argument just exists for
extensibility. Fix the implementation to accept NULL args.
2019-11-05 10:40:21 +01:00
Simon Ser
8ade6b654b
xrt: introduce OXR_VERIFY_ARG_TYPE_CAN_BE_NULL
...
It's like OXR_VERIFY_ARG_TYPE_AND_NOT_NULL, but doesn't ensure the argument
is non-NULL.
2019-11-05 10:21:23 +01:00
Simon Ser
1b51db68f9
xrt: rename OXR_VERIFY_ARG_TYPE_AND_NULL to …_NOT_NULL
2019-11-05 10:15:35 +01:00
Jakob Bornecrantz
b59676e184
st/oxr: Comment all parameters
2019-11-02 22:40:26 +00:00
Ryan Pavlik
e8660a18bd
build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
...
Reduces repetitive code.
2019-11-01 16:51:54 -05:00
Jakob Bornecrantz
e84ca2de34
st/oxr: Use xrt_compositor helpers
2019-10-28 21:00:56 +00:00
Jakob Bornecrantz
c11640d66b
st/oxr: Make sure actions that are not marked as active are deactivated
2019-10-28 14:58:59 +00:00
Jakob Bornecrantz
312a99ecf8
st/oxr: Implement any sub-action path handling
2019-10-28 14:58:59 +00:00
Jakob Bornecrantz
186f3ff7e0
st/prober: Ignore I2C based hid devices
2019-10-25 18:39:34 +01:00
Ryan Pavlik
6b8b1ae935
st/oxr: Fix changed since last sync and support for more input types
2019-10-24 22:16:40 +01:00
Jakob Bornecrantz
aa52da072f
xrt: Remove relation input type
2019-10-24 21:51:07 +01:00
Ryan Pavlik
d3d6f15107
st/prober: More data in the "failed to get interface number" messages.
2019-10-24 15:45:41 +01:00
Ryan Pavlik
939c41aba9
st/oxr: If the app called request-exit, go to exiting instead of ready.
2019-10-22 21:14:04 +02:00
Ryan Pavlik
713830338e
st/oxr: Allow wait frame in headless since it does more than just waiting.
2019-10-22 17:29:04 +00:00
Lubosz Sarnecki
6eb1086578
st/prober: Add string functions.
...
Functions for printing and matching xrt_proper_string.
2019-10-22 19:18:47 +02:00
Ryan Pavlik
e2428ee7fa
st/oxr: Handle request exit session and stopping state
2019-10-22 18:00:00 +02:00
Jakob Bornecrantz
0826ff9273
st/oxr: xrCreateActionSpace is fully implemented
2019-10-22 15:19:23 +01:00
Jakob Bornecrantz
937f5d582a
st/oxr: Refactor logging options to instance
2019-10-22 11:47:25 +01:00
Jakob Bornecrantz
ce57fae37d
st/oxr: Actually implement oxr_slog_abort
2019-10-22 11:45:21 +01:00
Jakob Bornecrantz
dcd9bbb4d7
st/gui: Use r8g8b8 or l8 converter
2019-10-19 23:15:49 +01:00
Jakob Bornecrantz
078ac7c59e
st/oxr: Slightly better error message
2019-10-19 22:18:29 +01:00
Jakob Bornecrantz
e56271d968
st/oxr: Add super hacky debug gui
2019-10-15 20:54:57 +01:00
Jakob Bornecrantz
5f1078675d
st/gui: Do not call prober select in debug scene
2019-10-15 20:54:52 +01:00
Jakob Borncrantz
7239282aab
st/prober: Add tracking factory variable tracking
2019-10-15 21:05:37 +02:00
Lubosz Sarnecki
783a36fbcc
st/prober: Add libusb error strings and can open function.
...
The prober will now output libusb errors as string. This patch also adds
a `can_open` function to the prober, that opens and closes device with
libusb to ensure devices can be opened.
This makes it possible to ensure early that permissions on the device
are correct.
2019-10-11 15:56:30 +01:00
Lubosz Sarnecki
6ec8721899
xrt: Add num_devices to prober found interface.
...
In order to access multiple devices the prober found interface needs to
pass the length of the device list. This patch updates the found
interface in all drivers.
2019-10-11 15:56:20 +01:00
Jakob Bornecrantz
a0a4fa3399
st/oxr: Fixes for ball on stick bindings
2019-10-11 15:40:39 +01:00
Drew DeVault
7f16e7230f
oxr_verify.cpp: rewrite in C
2019-10-10 22:54:19 +00:00
Drew DeVault
d7debdb724
oxr_logger.cpp: rewrite in C
2019-10-10 22:54:19 +00:00
Drew DeVault
6c275f0aae
oxr_event.cpp: rewrite in C
2019-10-10 22:54:19 +00:00
Drew DeVault
904d58d365
oxr: track list of sessions; poll sessions
2019-10-10 22:51:21 +00:00
Drew DeVault
a736812f63
oxr: mostly implement XR_SESSION_LOSS_PENDING
...
This is missing support for xrPollEvents, which needs to be handled
separately as it's not properly rigged up throughout Monado yet.
2019-10-10 22:51:21 +00:00
Jakob Bornecrantz
bffe802449
t/psmv: Adjust room position in prober instead
2019-10-10 23:47:51 +01:00
Jakob Bornecrantz
102e36efc9
st/gui: Don't include glad directly
2019-10-09 22:11:41 +01:00
Jakob Bornecrantz
1afc4df95c
st/gui: Refactor gui code into it's own state tracker
2019-10-09 21:53:21 +01:00
Jakob Bornecrantz
acd2c50470
aux/math: Rework offset transformation
...
This reverts commit 0d9aaae470
, and changes it.
2019-10-08 11:19:14 +01:00
Jakob Bornecrantz
d8cd9ffcdd
st/prober: Better error printing
2019-10-04 10:32:02 +01:00
Jakob Bornecrantz
ec7e98538c
st/prober: Code style, pointer star location
2019-09-29 11:45:23 +01:00
Jakob Bornecrantz
76527b73f8
st/oxr: Code style, pointer star location
2019-09-29 11:45:23 +01:00
Jakob Bornecrantz
fcc316d6f1
st/prober: First ball is red
2019-09-27 20:28:04 +01:00
Jakob Bornecrantz
953ce6480d
st/prober: Gate tracking on OpenCV instead of PSMV and PSVR
2019-09-26 22:34:14 +01:00
Drew DeVault
064aef3526
build: port to meson
2019-09-26 15:05:22 +00:00
Ryan Pavlik
24260bb042
st/oxr: Silence meaningless negotiate errors/warnings.
...
Loader just indiscriminately populates all function pointers.
2019-09-24 22:01:05 +00:00
Ryan Pavlik
bbd63ff071
st/oxr: Disable partial implementation of debug extension for now.
2019-09-24 14:16:31 -05:00
Ryan Pavlik
80b0c14590
st/oxr: Paths cannot end with a slash.
2019-09-24 10:20:16 -05:00
Ryan Pavlik
b7aebc2146
st/oxr: Implement oxr_xrStructureTypeToString
2019-09-24 10:20:16 -05:00
Ryan Pavlik
192a219d1c
st/oxr: Implement oxr_xrResultToString
2019-09-24 10:20:16 -05:00
Jakob Bornecrantz
a211b392df
st/prober: Set origin for PSVR tracker as well
...
Spotted by Pete Black.
2019-09-24 01:14:48 +01:00
Jakob Bornecrantz
79eba848ae
st/prober: Add hardcoded tracking system integration for PSMV and PSVR
2019-09-22 12:00:48 +01:00
Jakob Bornecrantz
387bc123f8
xrt: Expand tracking interface
2019-09-21 18:22:06 +01:00
Jakob Bornecrantz
51dafe7b05
xrt: Add usb_dev_class to xrt_prober_device
2019-09-18 13:03:01 +01:00
Jakob Bornecrantz
46389cd6ae
xrt: Send in real prober to auto probers
2019-09-15 23:24:58 +01:00
Jakob Bornecrantz
a673f9b7fc
st/oxr: Add Monado ball on a stick controller
2019-09-15 15:44:39 +01:00
Jakob Bornecrantz
79ad85e9b7
st/oxr: Add interaction profile code
...
Not a complete implementation but gets us far enough to
respect the bindings that a application gives us.
2019-09-15 15:44:39 +01:00
Jakob Bornecrantz
2337299279
st/oxr: Make sure action keys don't start at zero
2019-09-15 15:44:39 +01:00
Jakob Bornecrantz
2db3df9027
st/oxr: Add oxr_sink_logger, the slog-inator!
2019-09-15 15:44:39 +01:00
Jakob Bornecrantz
8d001ca95f
st/oxr: Even more fixes for system xdevs
2019-09-09 21:57:37 +01:00
Jakob Bornecrantz
affd1cb2c1
st/oxr: Tidy
2019-09-09 20:47:43 +01:00
Jakob Bornecrantz
b84413cc35
st/oxr: Fix system xdev init
2019-09-09 20:47:30 +01:00
Jakob Bornecrantz
962de77ca0
st/oxr: Carry around extra xrt_devices
...
Pretty much only used for enabling 3 PS Move Controllers right now.
2019-09-08 10:01:55 +01:00
Jakob Bornecrantz
798ef43342
st/prober: Make sure the usb-product is always filled out
2019-09-07 14:34:20 +01:00
Jakob Bornecrantz
c021199b98
xrt: Add interface to prober to open video devices
2019-09-07 14:34:20 +01:00
Jakob Bornecrantz
aaaa9fc235
st/oxr: Fix strict aliasing warnings when compiling with optimisations
2019-09-06 15:46:17 +01:00
Jakob Bornecrantz
e8ead02c4c
st/oxr: Silence warning from snprintf when compiling with optimisations
2019-09-06 15:46:06 +01:00
Jakob Bornecrantz
d8f8f670d3
st/prober: Add variable tracking
2019-09-06 14:37:45 +01:00
Jakob Bornecrantz
591e6d3b29
st/oxr: Add variable tracking
2019-09-06 14:37:45 +01:00
Jakob Bornecrantz
29b1713be9
xrt: Add enum xrt_device_name so that state trackers can reason about device
2019-09-04 12:47:18 +01:00
Jakob Bornecrantz
0f9b5786f3
st/oxr: Remove unnecessary NULL check
2019-08-22 16:46:42 +01:00
Ryan Pavlik
dae90d4b42
st/oxr: Fix potential null-deref in events.
...
Found by clang-tidy
2019-08-21 14:28:32 -05:00
Ryan Pavlik
624fe8ab59
st/oxr: Change iteration of actions.
2019-08-21 14:28:07 -05:00
Ryan Pavlik
2389c207f5
st/oxr: debug utils extension cleanup
2019-08-19 17:12:33 -05:00
Ryan Pavlik
077d0c39c5
st/oxr: Unify handling of extensions.
2019-08-19 17:12:33 -05:00
Jakob Bornecrantz
33dd9b65ea
st/oxr: Don't pad systemName with a lot of padding
...
This was a thinko by me and just plain wrong.
2019-08-17 09:31:01 +01:00
Ryan Pavlik
6566e7d21d
st/oxr: Return FUNCTION_UNSUPPORTED for some not-enabled extensions.
...
More to do, but this is something.
2019-08-16 18:04:53 -05:00
Ryan Pavlik
ac22f30a2c
st/oxr: xrGetInstanceProcAddr typo fix.
2019-08-16 18:04:53 -05:00
Ryan Pavlik
ad6c26c231
st/oxr: xrGetInstanceProcAddr doesn't require an instance to enumerate layers
2019-08-16 18:04:53 -05:00
Ryan Pavlik
d6df86a9ae
st/oxr: Don't write debug message on functions we just don't know in GIPA.
2019-08-16 18:04:53 -05:00
Ryan Pavlik
ae63bfc0ac
st/oxr: Adjust two call helper to satisfy spec.
2019-08-16 23:01:04 +00:00
Ryan Pavlik
0088c6cb6e
st/oxr: Fix possible null dereference.
...
Found by clang-tidy.
2019-08-16 17:25:29 -05:00
Ryan Pavlik
c8776a8b0d
st/oxr: Minor clang-tidy fixes.
2019-08-16 17:25:29 -05:00
Ryan Pavlik
dddb8069d0
st/prober: Minor clang-tidy fixes.
2019-08-16 17:25:29 -05:00
Ryan Pavlik
80cc620eca
st/prober: Fix use of uninitialized condition.
...
Found by clang-tidy
2019-08-16 17:25:29 -05:00
Ryan Pavlik
c874d25ee3
st/prober: Fix null dereference.
...
Found by clang-tidy.
2019-08-16 17:25:29 -05:00
Ryan Pavlik
557172f8ae
st/oxr: Silence warning about results in binding code.
2019-08-16 10:54:53 -05:00
Ryan Pavlik
93976bb276
prober: Add ability to get string descriptors.
...
Right now we can only use libusb to get this info.
2019-08-15 12:36:01 +00:00
Ryan Pavlik
3e34060777
st/oxr: Ignore view config type in monado headless mode.
2019-08-14 17:15:15 -05:00
Ryan Pavlik
225bac0cfb
st/oxr: Enforce 0 session create flags
2019-08-14 17:14:59 -05:00
Ryan Pavlik
761c4d7ca8
Fix build.
2019-08-14 17:14:46 -05:00
Ryan Pavlik
1fd9936f95
st/oxr: Fix enumerating swapchain formats on headless
2019-08-14 12:28:30 -05:00
Jakob Bornecrantz
5fa58efcbf
st/oxr: Verify width and height on swapchain create
2019-08-01 07:39:50 +01:00
Jakob Bornecrantz
4ebc308a37
st/oxr: Update version for OpenXR 1.0 support
2019-08-01 07:34:33 +01:00
Jakob Bornecrantz
57c6078a69
st/oxr: Update to OpenXR 1.0
2019-07-29 16:43:39 +01:00
Jakob Bornecrantz
08a4b40f77
st/oxr: Fix API negotiation code
2019-07-29 16:34:48 +01:00
Ryan Pavlik
bf45f2bc21
st/oxr: Hack the fixed bindings to add support for the Hydra
2019-07-29 04:08:06 +01:00
Jakob Bornecrantz
9a4fee3896
st/oxr: Code style
2019-07-25 00:57:51 +01:00
Jakob Bornecrantz
d66cd05445
st/oxr: Fix warnings during release builds
2019-07-25 00:53:04 +01:00
Jakob Bornecrantz
e7a933a168
st/oxr: Verify poses in space create functions
2019-07-21 14:57:45 +00:00
Jakob Bornecrantz
223206dc24
st/oxr: Refactor function returning to actually raise error this time
2019-07-21 14:15:17 +01:00
Jakob Bornecrantz
97939accda
st/oxr: Slightly improve swapchain image status
...
The current code is not up spec at all anyways, but this at least
helps to avoid some bad situations in the current code.
2019-07-02 17:54:13 +01:00
Jakob Bornecrantz
79364eaf4c
st/oxr: Validate that Swapchain has at least one released image
2019-07-02 17:54:13 +01:00
Jakob Bornecrantz
b7defdb0ae
st/oxr: Use new prober function helpers
2019-06-30 14:35:27 +01:00
Jakob Bornecrantz
ccac11ac1d
st/prober: Remove auto-wrapper
2019-06-30 14:35:27 +01:00
Jakob Bornecrantz
699bb8d5ad
st/prober: Implement camera listing function
2019-06-28 14:03:50 +01:00
Jakob Bornecrantz
16f8b013ec
st/prober: Save usb path and product name
2019-06-28 14:03:50 +01:00
Jakob Bornecrantz
de4dc03ab7
st/oxr: Save people from shooting themselves in the foot
2019-06-25 18:36:14 +01:00
Ryan Pavlik
1f84814721
st/prober: Allow "found" functions called by prober to make more than one device.
2019-06-22 11:34:51 +01:00
Ryan Pavlik
a673a4d469
st/oxr: Make the binding finder return bool so we can chain it.
2019-06-22 11:34:51 +01:00
Ryan Pavlik
257cf6b5a8
prober: Fix typo
2019-06-21 13:17:55 -05:00
Jakob Bornecrantz
80cf616355
st/prober: Improve printing order of dumping
2019-06-21 17:10:57 +01:00
Jakob Bornecrantz
cf8dfe6357
st/prober: Prefer deb_path for finding usb bus and addr
2019-06-21 17:04:27 +01:00
Jakob Bornecrantz
a3ae5ae453
st/prober: Probe for V4L devices
2019-06-21 17:04:27 +01:00
Jakob Bornecrantz
cb44c822d2
st/prober: Refactor hidraw enumeration code in udev file
2019-06-21 17:04:27 +01:00
Jakob Bornecrantz
dfdc794272
st/prober: Refactor libuvc code to own file
2019-06-21 17:04:27 +01:00
Jakob Bornecrantz
d9b820c834
st/prober: Refactor libusb code to own file
2019-06-21 17:04:25 +01:00
Jakob Bornecrantz
7f07cee387
st/prober: Guard libudev usage
2019-06-21 17:03:20 +01:00
Jakob Bornecrantz
d30cd0b639
st/oxr: Fix segfault due to bad U_ZERO of sub_paths
2019-06-18 21:32:08 +01:00
Ryan Pavlik
e70a28b912
st/oxr: Fix enumerating swapchain formats on headless
...
Operating on the assumption that it's OK to pass a null countOutput sometimes.
2019-06-18 15:17:53 -05:00
Ryan Pavlik
93c5ae105f
st/oxr: Fix typo.
2019-06-18 14:46:51 -05:00
Ryan Pavlik
c327d5e48c
st/oxr: Banish remaining bare calloc calls.
2019-06-18 14:14:01 -05:00
Ryan Pavlik
661fa79057
st/prober: Use U_ZERO
2019-06-18 14:14:01 -05:00
Ryan Pavlik
bc4b36ed61
st/oxr: Use U_ZERO
2019-06-18 14:14:01 -05:00
Jakob Bornecrantz
739b6b7895
st/oxr: Code style fix
2019-06-18 13:09:59 -05:00
Ryan Pavlik
58f5d56d48
st/oxr: Code style fix
2019-06-18 13:09:59 -05:00
Ryan Pavlik
2228a00b08
st/oxr: Codespell fix
2019-06-18 13:09:59 -05:00
Jakob Bornecrantz
e745a28374
st/oxr: Basic foundation for input and output
...
This commits lays the foundation for actions in Monado (input and output).
There are lots of things missing and non-conformant in there. But once in
more people then just me can test it out and work on it.
2019-06-18 17:56:10 +01:00
Benjamin Saunders
41ad2b872c
st/oxr: Accept nonnull subactionPaths when countSubactionPaths is 0
...
It's not clear that this is forbidden, and it can make the caller's
life a little easier.
2019-06-14 12:06:00 -07:00
Ryan Pavlik
06cb5d680b
st/oxr: Check requested OpenXR API version.
...
Conformance.
2019-06-12 15:40:19 -05:00
Ryan Pavlik
0bdb4e4aeb
st/oxr: Unify checking of system ID, and do so in createSession
2019-06-12 15:40:19 -05:00
Ryan Pavlik
052728d515
st/oxr: Don't break on function unsupported errors.
2019-06-12 15:39:26 -05:00
Jakob Bornecrantz
8aec512de3
xrt: Update prober interface
2019-06-10 14:47:19 +01:00
Jakob Bornecrantz
1f64f714f6
xrt: Add input, hmd_parts and tracking interface
...
This patch has been spun of the rather massive amount of work for adding input
devices into Monado. The interfaces feels somewhat stable now so could do
with another pair of eyes on them, before too much work is done on st/oxr.
2019-06-10 14:47:19 +01:00
Jakob Bornecrantz
889c89590c
st/oxr: Implement action stubs in oxr_input.c
2019-06-10 14:47:05 +01:00
Ryan Pavlik
acec80da2f
st/oxr: Fix graphics binding error codes/messages
2019-06-03 22:52:28 +00:00
Ryan Pavlik
dab52d319d
st/oxr: Support arbitrary next chains in session creation.
2019-06-03 22:52:28 +00:00
Ryan Pavlik
0a523bef05
st/oxr: Fix verifying XrSessionCreateInfo and graphics bindings structs.
...
Don't enforce next == NULL, and look through entire chain for structure
type enum, using oxr_chain.h
2019-06-03 22:52:28 +00:00
Ryan Pavlik
fa8047fed3
st/oxr: Add oxr_chain.h header
...
This should replace all manual poking of the next chain.
Prefer the macros over the functions since they'll do your casting for you.
2019-06-03 22:52:28 +00:00
Ryan Pavlik
e944bcb96f
st/oxr: Parenthesize macro args.
...
Found by upcoming modifications.
2019-06-03 22:52:28 +00:00
Ryan Pavlik
74065d49dd
st/oxr: Remove incorrect check in OXR_VERIFY_TYPE_AND_NULL
...
We are to ignore any unexpected types in a next chain.
2019-06-03 22:52:28 +00:00
Ryan Pavlik
9c979099e3
st/oxr: Fix some error message formatting in oxr_verify
2019-06-03 17:48:59 -05:00
Ryan Pavlik
0696203858
st/oxr: Document message style for oxr_error
2019-06-03 17:48:39 -05:00
Jakob Bornecrantz
d97df04c11
xrt: Add new prober interface and code
2019-05-16 20:41:35 +01:00
Christoph Haag
09e9771a2d
st/oxr: fix path length verification
...
We can't assume the string is null terminated.
2019-05-09 17:49:03 +00:00
Jakob Bornecrantz
d5f5d9f354
st/oxr: Set session on action spaces
2019-05-09 12:42:28 +01:00
Jakob Bornecrantz
a70fdba30e
st/oxr: Move CMakeLists.txt into base directory
2019-05-03 18:53:24 +01:00
Jakob Bornecrantz
dc9ab44a5a
xrt: Rename xrt_prober to xrt_auto_prober
2019-05-03 18:53:07 +01:00
Benjamin Saunders
13cef1b8b9
comp: Support rendering individual array layers
2019-05-01 17:45:43 -07:00
Benjamin Saunders
b6f2013bc5
st/oxr: Frame end uses the most recently released image
2019-05-01 17:45:43 -07:00
Ryan Pavlik
3a4e020920
st/oxr: Fix conformance issue in begin session.
2019-04-24 02:41:34 +00:00
Benjamin Saunders
570ba1ae88
st/oxr: Initialize action act_set pointer
...
Fixes a segfault in OXR_VERIFY_ACTION_AND_INIT_LOG
2019-04-22 09:19:59 -07:00
Jakob Bornecrantz
bc77052493
st/oxr: Tidy code style
2019-04-20 02:54:23 +01:00
Benjamin Saunders
1da5cd9914
st/oxr: Initialize action set session pointer
...
Fixes a segfault in OXR_VERIFY_ACTION_AND_INIT_LOG
2019-04-15 09:52:40 +01:00
Benjamin Saunders
9b774cbd72
st/oxr: Verify action names
2019-04-15 09:52:37 +01:00
Benjamin Saunders
f32cab368f
st/oxr: Fix error code for empty path segments
2019-04-15 09:52:34 +01:00
Benjamin Saunders
a776b94147
st/oxr: Fix localized name validation
2019-04-15 09:52:30 +01:00
Jakob Bornecrantz
a6ea2816cb
st/oxr: Tidy off by one error
2019-04-12 11:48:25 +01:00
Jakob Bornecrantz
98c91ccb25
st/oxr: Tidy code style
2019-04-12 11:46:59 +01:00
Jakob Bornecrantz
fcdfd9d97d
st/oxr: Pipe some path functions down into the path store
2019-04-12 11:30:01 +01:00
Jakob Bornecrantz
77b3b7b840
st/oxr: Add a path store
2019-04-12 11:30:01 +01:00
Jakob Bornecrantz
9173e1d31c
st/oxr: Add code to verify full paths
2019-04-12 11:30:01 +01:00
Jakob Bornecrantz
51b5d55e61
st/oxr: Use correct error returns in single level path
...
Spotted by Ryan.
2019-04-12 11:30:01 +01:00
Ryan Pavlik
611febab5a
st/oxr: Switch logger to using XRT_DEBUGBREAK
2019-04-08 19:49:38 +00:00
Ryan Pavlik
891eb7f1c4
st/oxr: Add a debug option to break/trap on error.
...
Might be useful for debugging, since once the consuming call has returned,
you've lost most of the context of what led to the error.
2019-04-08 19:49:38 +00:00
Ryan Pavlik
af2756b50a
st/oxr: Fix conformance issue in xrBeginFrame
2019-04-08 14:02:36 -05:00
Ryan Pavlik
3d2d391fbe
st/oxr: Fix error message for xrCreateSession.
...
Missing graphics binding is XR_ERROR_GRAPHICS_DEVICE_INVALID.
2019-04-08 14:02:36 -05:00
Jakob Bornecrantz
1d4e73caea
st/oxr: Return correct error value
2019-04-08 19:41:30 +01:00
Jakob Bornecrantz
78afc55d94
st/oxr: Improve the fixed size single path verifier
2019-04-08 18:35:09 +00:00
Jakob Bornecrantz
6355f02ae7
st/oxr: Tidy code style
2019-04-06 09:40:54 +01:00
Ryan Pavlik
98cdb84b26
st/oxr: Simplify and dedupe session creation.
...
The per-graphics-binding code now just "populates"
a centrally-created session, rather than "creates".
2019-04-05 17:45:37 -05:00
Ryan Pavlik
6209e17c76
st/oxr: Make verification macros confirm that the handle is alive.
2019-04-05 17:45:37 -05:00
Ryan Pavlik
e5561b9b90
st/oxr: Minimal debug messenger "implementation".
...
Just does enough to avoid crashing - allowing the loader, etc.
to actually handle most of it.
2019-04-05 17:45:37 -05:00
Ryan Pavlik
f533d737b9
st/oxr: Improve action space stubs.
2019-04-05 17:45:37 -05:00
Ryan Pavlik
0b2b99ca89
st/oxr: Improve actionset/action stubs.
2019-04-05 17:45:37 -05:00
Ryan Pavlik
a958fd2820
st/oxr: Provide handle lifecycle management
2019-04-05 17:45:37 -05:00
Jakob Bornecrantz
918b7ea467
st/oxr: Silence warning
2019-04-05 10:42:49 +01:00
Christoph Haag
ab275a625e
st/oxr: Use system name from xrt_device
2019-04-05 09:52:29 +01:00
Jakob Bornecrantz
cae8d40c11
st/oxr: Add viewport scaling env variable
2019-04-03 17:55:20 +01:00
Jakob Bornecrantz
4540cff077
st/oxr: Silence warning
...
Reviewed-by: Ryan Pavlik <ryan.pavlik@collabora.com>
2019-04-01 17:07:23 +01:00
Ryan Pavlik
c147607728
st/oxr: Guard frame end and frame begin for use in headless sessions.
...
They aren't on the list of "illegal in headless" functions.
2019-03-27 16:23:01 +00:00
Ryan Pavlik
72b0a97142
st/oxr: Enable dynamic prediction by default.
2019-03-27 16:22:56 +00:00
Ryan Pavlik
82f5a974e3
st/oxr: Optionally perform dynamic prediction.
2019-03-27 16:22:41 +00:00
Ryan Pavlik
f78509ba9b
st/oxr: Hand determination of frame time and interval over to compositor
2019-03-27 13:39:22 +00:00
Ryan Pavlik
f6c97ec253
comp: Pass time state down into compositor
2019-03-27 13:39:22 +00:00
Jakob Bornecrantz
b47b9748a5
st/oxr: Tidy code style
2019-03-27 13:35:26 +00:00
Ryan Pavlik
ef633d79fb
st/oxr: Silence Clang warnings about typeof
2019-03-25 19:20:23 +00:00
Ryan Pavlik
9004ea80bb
xrt: Devices get a timekeeping object, must return a timestamp.
...
Updates drivers to match.
2019-03-25 12:28:54 -05:00
Jakob Bornecrantz
992c176143
st/oxr: Fix verify prototype and add extern C attributes
2019-03-25 01:18:17 +00:00
Benjamin Saunders
c8515e142d
st/oxr: Ignore graphics bindings from disabled extensions
2019-03-24 15:03:23 -07:00
Benjamin Saunders
3c9eafc1f0
st/oxr: Implement XR_KHR_headless
2019-03-24 13:25:30 -07:00
Benjamin Saunders
b7023c2ec6
st/oxr: More accurate xrGetReferenceSpaceBoundsRect return code
2019-03-23 10:05:27 -07:00
Ryan Pavlik
f7d990c7e3
xrt: Use U_TYPED_CALLOC
2019-03-22 13:47:51 -05:00
Ryan Pavlik
1d6207eee8
st/oxr: Fix some type issues
2019-03-22 16:54:14 +00:00
Jakob Bornecrantz
0b7a620c02
st/oxr: Do not enumerate the XR_KHR_headless extension as it is not supported yet
2019-03-21 18:54:05 +00:00
Jakob Bornecrantz
15a97422ba
xrt: Add all of Monado
2019-03-18 05:52:32 +00:00