Commit graph

1621 commits

Author SHA1 Message Date
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
Jakob Bornecrantz 5e78752a6e xrt: Add a bunch of different layer types 2020-08-11 01:48:31 +01:00
Christoph Haag 026cc64681 comp: make nvidia display selectable with XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY
Allows temporarily adding a nvidia display name string to the whitelist without recompiling.
2020-08-11 00:44:31 +02:00