Commit graph

190 commits

Author SHA1 Message Date
Jakob Bornecrantz d778c236fe c/client: A working but non-spec conforming way to get Vulkan clients working 2020-06-16 16:33:04 +01:00
Jakob Bornecrantz 65dcc82e3a comp+ipc: Respect view space layer flag 2020-06-15 23:59:04 +00:00
Gonzalo Aguilar Delgado cdde7cd2c2 FIX #88: Add required dependencies 2020-06-13 17:05:14 +00:00
Ryan Pavlik 26ab046fba comp: Remove no-longer-needed comp_layer_quad struct.
Replaced by xrt_comp_layer_quad.
Also add some comments.
2020-06-09 16:19:39 -05:00
Ryan Pavlik 7446dc08d5 xrt: Rename output parameter of acquire_image to out_image.
As is tradition.
2020-06-09 15:56:26 -05:00
Ryan Pavlik e0e5aeceda xrt: name xrt_swapchain pointers consistently "xsc" or similar.
As is tradition.
2020-06-09 15:29:46 -05: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 55e026245a xrt: Use new xrt_layer_data in layer functions 2020-06-09 19:04:48 +00:00
Jakob Bornecrantz 320c9ab3cb ipc+comp: Use new xrt_layer_data and friends struct 2020-06-09 19:04:48 +00:00
Jakob Bornecrantz 5912964ded ipc+comp: Even more make layers the same 2020-06-09 19:04:48 +00:00
Lubosz Sarnecki 08d81e5950 ipc+comp: Make layer structs more consistent.
Add missing fields.
Sort layer struct members.
ipc/protocol: Move xdev_id and name to common layer struct.
2020-06-09 19:04:48 +00:00
Lubosz Sarnecki b1d39e7f07 xrt: Move layer enum to xrt namespace. 2020-06-09 19:04:47 +00: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 077087bb15 xrt: Introduce xrt_comp_fd_destroy to avoid some error prone casting 2020-06-04 16:37:06 +00:00
Ryan Pavlik 4ee0ad7767 comp/client: Decrease visibility of downcast helpers. 2020-06-03 16:28:36 -05:00
Ryan Pavlik cc609f5fb7 comp/client: Use helper functions, comment. 2020-06-03 16:28:36 -05:00
Ryan Pavlik bc6cc85e7d xrt: Improve doxygen documentation. 2020-06-03 16:28:18 -05:00
Lubosz Sarnecki 435d5a9b9e c/comp: Remove internal Vulkan validation init.
Instead of maintaining this chunk of code and build options, the Vulkan
loader can be used to load up validation. This has the advantage that no
layer name needs to be hard coded inside Monado, which was subject of
change recently.

Instead of using our own environment variable we can easily set the one
from the loader, e.g. `VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation`.
2020-06-03 11:17:51 +00:00
Jakob Bornecrantz fb867b02c3 xrt: Remove array_size field on xrt_swapchain 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 09baeb91bc c/swapchain: Close and remaining open FDs 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 753b910b5a c/swapchain: Don't only give out the zero index 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 5b0085f1c1 c/client: Mark consumed FDs as invalid 2020-06-02 13:02:04 +01:00
Lubosz Sarnecki 7186bddf60 c/comp+ipc: Use array indices again.
This fixes a regression introduced by the IPC and layer rendering
patchsets and passes the array_index to the correct places, so the
correct VkImageView is used instead of the one with index 0.
2020-06-02 12:42:42 +02:00
Jakob Bornecrantz 77c2b9cb5d c/main: Include <math.h> in comp_layer_renderer.c 2020-05-29 23:37:22 +01:00
Lubosz Sarnecki 1e8106c974 c/compositor: Render multiple layers without IPC.
Hook up layer rendering when XRT_FEATURE_SERVICE is not set.
2020-05-28 22:16:57 +00:00
Jakob Bornecrantz 066009c0c5 c/layer_renderer: Enable blending. 2020-05-28 22:16:57 +00:00
Lubosz Sarnecki d0539161dc c/renderer+ipc: Use layer renderer.
Make the renderer and IPC aware of multiple projection and quad layers
using the layer renderer.

Remove redundant code related to idle images and imported buffers and
command buffer rebuild, since we now always just display the layer
renderer's frame buffer.

Get view and projection properties from xrt_device.
2020-05-28 22:16:57 +00:00
Lubosz Sarnecki aedd4d9ff8 c/layers: Implement layer renderer.
Implements a layer renderer capable of handling multiple quad
and projection layers rendered in it's own Vulkan pipeline.
2020-05-28 22:16:57 +00:00
Jakob Bornecrantz aa0523e535 c/main: Only allocate one image for static swapchains 2020-05-27 21:57:48 +01:00
Ryan Pavlik 5383944f85 comp/main: Fix warning 2020-05-26 11:25:03 -05:00
Jakob Bornecrantz 129d76687e c/main: Idle VkDevice after presenting VkSwapchain 2020-05-26 11:33:58 +01:00
Jakob Bornecrantz 7ab48b691c c/main&ipc: Adopt to flip y in layers change
Client side changes by Lubosz Sarnecki.
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
Jakob Bornecrantz 83ace60132 c/main: Add simple support for new layer interface 2020-05-26 11:33:58 +01:00
Jakob Bornecrantz e36e457560 c/client: Add full support for new layer interface 2020-05-26 11:33:58 +01: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 136794ab63 c/distortion: Idle before running destructor. 2020-05-11 20:22:51 +01:00
Lubosz Sarnecki 3e88a850ff c/renderer: Use vk_submit_cmd_buffer from vk_helpers. 2020-05-11 20:22:51 +01:00
Lubosz Sarnecki dc45605c84 c/renderer: Use vk_init_cmd_buffer from vk_helpers. 2020-05-11 20:22:51 +01:00
Lubosz Sarnecki f131739c00 aux/vk: Take VkExtent2D and VkImageUsageFlags in vk_create_image_simple. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki 0e5d10ca39 c/renderer: Rename comment. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki 501d8dadd4 c/main: Split nvidia test to function. 2020-05-11 20:21:58 +01:00
Christoph Haag d95c77ad54 comp: Also enable vk debug print with XRT_COMPOSITOR_PRINT_DEBUG
This is useful because it prints which GPU the compositor runs on.
2020-05-05 15:12:08 +02:00
Ryan Pavlik 457d411016 comp: Remaining 32-bit warning fixes 2020-04-29 17:47:32 -05:00
Ryan Pavlik 233c63a773 comp: Fix Wint-to-pointer-cast warnings on 32-bit.
Culprit is a Vulkan non-dispatchable handle:
Fix is simpler than for OpenXR because we aren't a Vulkan
implementation so they're all opaque to us.
2020-04-29 17:44:07 -05:00
Lubosz Sarnecki 5ba751a239 c/renderer: Expose idle image control. 2020-04-29 09:58:52 +01:00
Pete Black 8082e8dbca c/renderer: Add new reset rendering function 2020-04-29 09:58:52 +01: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 128abac9e8 comp: Codespell fixes. 2020-04-24 15:30:46 -05:00
Lubosz Sarnecki ba3b220ad2 c/renderer: Use gray as idle image color. 2020-04-22 22:00:13 +01:00