Lubosz Sarnecki
3195ba8351
c/main: Implement XR_KHR_composition_layer_equirect2.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
9738b4fe93
c/shaders: Add equirect shader.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
5777d829c6
c/comp: Init repeat sampler for swapchain images.
2020-10-26 01:34:10 +00:00
Jakob Bornecrantz
54739aff8d
c/render: Refactor out distortion rendering
2020-10-13 19:51:13 +01:00
Jakob Bornecrantz
c5741af98a
c/main: Tidy names
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
4ffc0b4144
c/main: Remove viewport_id in mesh shader
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
95bdcc0bd3
c/main: Round viewport to cover the same as scissors
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
32fd9398fe
c/main: Refactor shader loading to own file
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
1750bb672f
c/main: Remove none shaders
2020-10-08 15:02:52 +01:00
Jakob Bornecrantz
39ec39dbee
c/main: Add more logging levels
2020-10-08 14:57:59 +01:00
Jakob Bornecrantz
b5e5322f49
c/main: Use log levels
2020-10-06 20:37:01 +01:00
Lubosz Sarnecki
bbeab1da3f
c/main: Use u_logging.
...
Remove comp_compositor_print.
2020-10-06 20:04:52 +01:00
Jakob Bornecrantz
309037a445
c/client: The client compositors doesn't own the native compositor
2020-10-04 13:04:52 +01:00
Christoph Haag
c5209c5ed4
comp: Move mesh generation to comp_renderer init
...
Use none shader when XRT_DISTORTION_MODEL_NONE is set.
Fall back to none distortion if mesh generation fails or unsupported
distortion model is set.
comp_render init updates comp_settings::distortion_model.
u_compute_distortion_mesh: Don't touch xdev::distortion::preferred,
just add XRT_DISTORTION_MODEL_MESHUV mesh to xdev::distortion::models.
2020-09-30 02:05:05 +02:00
Christoph Haag
f82f247c19
comp: Rename distortion.vert to none.vert
...
After removing the other shaders, it is only used for no distortion anymore.
2020-09-30 02:05:05 +02:00
Christoph Haag
bc7a948975
comp: More replacing of binding indices with variables
2020-09-30 02:05:05 +02:00
Christoph Haag
2e7451ca5e
comp: Support only mesh and no istortion, remove pano and vive shaders
...
Also changes hardcoded binding indices into variables to make following the code easier
e.g. when adding new UBOs.
2020-09-30 02:05:04 +02:00
Christoph Haag
80f6fc9039
comp: Replace hardcoded binding indices with variables
...
Makes it easier to follow when changing code.
2020-09-30 01:30:30 +02:00
Christoph Haag
fb71c71a8c
xrt: Replace mesh generator with xdev->compute_distortion()
...
Each HMD driver now has to implement compute_distortion() which will be called
by the compositor implementation to generate a mesh (usually).
u_distortion_mesh contains implementations for the defaults (panotools, OpenHMD, vive).
Also adds compute_distortion function for Vive distortion
There are differences between OpenHMD and Panotools values, main differences for now:
* psvr has 5 pano coefficients, ohmd has 3
* psvr uses viewport size and lens center in pixels for distortion calculation, ohmd in meter
* psvr uses different distortion scaling than ohmd
2020-09-28 17:04:15 +01:00
Christoph Haag
e5683d4fde
comp: remove useless pano ubo from mesh distortion
...
It was left in as a debug measure, but is more confusing than useful,
especially with northstar directly generating a mesh and vive with its own shader.
2020-09-22 02:19:13 +02:00
Ryan Pavlik
dae3ab3a4f
xrt: Be sure to include config headers
2020-09-18 13:56:24 +01: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
855b2005f3
c/main: Use new xrt_space_graph
2020-09-07 23:33:28 +01:00
Ryan Pavlik
cb26f7255c
comp: Use the correct calloc macro
2020-08-26 11:25:43 -05: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
1eaf4baf91
c/main: Support 16 layers
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
1496262564
xrt: Constify compositor interface
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
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
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
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
Jakob Bornecrantz
fba9f2532c
c/client: Fix warning and tidy
2020-08-21 18:17:12 +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
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
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
521de8ecfd
comp: Add a URL for sample Android EGL code.
2020-08-19 11:01:49 -05:00
Ryan Pavlik
6820a7851d
comp/main: Refuse to create a swapchain if protected content bit requested.
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
Ryan Pavlik
bf37b9d999
comp: Use u_logging in some EGL code.
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
ab4ceee720
comp: Save/restore the correct texture binding on Android
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
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
Jakob Bornecrantz
71e10fafcd
c/main: Fix warnings with asserts
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
Christoph Haag
5ecd0a947d
comp: Move nvidia whitelist warning so it is displayed again
2020-08-10 20:48:29 +02:00
Jakob Bornecrantz
ca786df18c
xrt: Make xrt_swapchain_create_info argument const
2020-08-07 19:15:18 +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
adc6ca8e8a
c/main: Fill out all of the compositor info struct
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
ee48b44087
c/main: Remove internal compositor global flip_y
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
Ryan Pavlik
d8ad620bd2
xrt: Update GLAD again, to a "merged" distribution.
...
This merges the OpenGL and OpenGL-ES code.
2020-08-05 20:50:00 +00:00
Christoph Haag
a5360f2237
comp: Free comp_render_layer on layer destruction
2020-08-05 20:32:51 +00:00
Christoph Haag
1f9e5cdfb6
comp: Free layer renderer on renderer destroy
2020-08-05 20:32:51 +00:00
Jakob Bornecrantz
080fdacc70
comp: Remove some vkDeviceWaitIdle calls and document other
2020-07-24 09:12:22 +00:00
Jakob Bornecrantz
a41c1ce1c5
c/main: Implement xrt_compositor::swapchain_import
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
d5a702cd47
c/main: Use new Vulkan image allocator helper
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
b93017911e
xrt: Make xrt_compositor::create_swapchain return xrt_result_t
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
a8a4e80746
vk: Use xrt_swapchain_create_info in vk_create_image_from_native
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
0d05eb6cae
xrt: Make some fields on xrt_gl_swapchain private
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
34843c3ffe
xrt: Make some fields on xrt_vk_swapchain private
2020-07-20 13:50:01 +00:00
Ryan Pavlik
6f56d91c05
xrt: Add separate build config for OpenGL ES
2020-07-17 15:17:42 -05:00
Ryan Pavlik
ebf1b01d48
comp: Improve OpenGL extension checking
2020-07-17 13:53:39 -05:00
Ryan Pavlik
cb69223532
aux: Move responsibility for clearing image FD to the helper.
2020-07-17 11:46:22 -05:00
Christoph Haag
4ec6f46717
comp/gl: hack: glFlush() before committing a layer
...
This works around corruption in layers on several drivers caused by
writes to the OpenGL textures not having finished when used by the
compositor.
This should be properly fixed with external semaphores later.
2020-07-17 17:11:35 +02:00
Lubosz Sarnecki
db3a721946
comp/shaders: Remove has_sub option.
...
As we have subimage rects for all layers now.
2020-07-16 19:34:33 +02:00
Lubosz Sarnecki
7e35fcb8aa
comp/renderer: Provide subrect properties for projection layers.
2020-07-16 19:32:53 +02:00
Lubosz Sarnecki
984056674e
comp/shaders: Sample quad layers with texture().
2020-07-16 19:08:10 +02:00
Lubosz Sarnecki
2472deb95a
comp/layers: Remove layer type from constructor.
...
The value was not used anyway as it is not set at creation time, but
every frame. This avoids some confusion.
2020-07-16 19:08:10 +02:00
Lubosz Sarnecki
6222de38c9
comp/shaders: Rename quad shaders to layer.
...
As the shader is used for all layers we have, the generic name fits
better.
2020-07-16 19:08:10 +02:00
Lubosz Sarnecki
a27164ab43
comp/renderer: Render subimage properties in layer shader.
...
This patch passes the offset and extent properties to the layer shader
by extending the uniform. The fragment shader stage now also receives
the transformation uniform, which contains a has_sub boolean to
distinguish if the properties are set, so between projection and quad layers.
To avoid color bleeding the subimage sampling happens on a global pixel
coordinates basis as ivec2 using the GLSL texelFetch function.
Projection layers will be sampled as before.
2020-07-16 19:08:10 +02: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
c3552ed420
xrt: Rename xrt_gfx_fd.h to xrt_gfx_native.h
2020-07-15 17:19:30 -05:00
Christoph Haag
ba17d35f7f
comp: Create second pipeline for premultiplied alpha blending
...
Fixes "Source Alpha Blending" conformance test.
2020-07-15 19:21:13 +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
Benjamin Saunders
1c78dd0246
c/client: Slightly improve barriers, taken from !360
...
Transplanted by Jakob, all the hard spec reading done by Ben.
2020-07-14 17:25:28 +01:00
Lubosz Sarnecki
a5dc31359b
c/compositor: Set a window title.
2020-07-10 17:03:28 +02:00
Christoph Haag
763b122c3e
comp: Print info about AllowHMD when direct mode fails on nvidia
2020-07-08 15:43:05 +02:00
Jakob Bornecrantz
8ee7086ea6
xrt: Introduce xrt_swapchain_create_info
2020-07-04 11:04:07 +00:00
Jakob Bornecrantz
bf086f8be2
c/client: Add two new linear formats to OpenGL
2020-06-25 19:55:08 +00:00
Jakob Bornecrantz
0be1456b32
c/main: Add support for more linear formats and prioritize them better
2020-06-25 19:55:08 +00:00
Jakob Bornecrantz
70a6240d48
comp: Use a sRGB window swapchain
2020-06-25 19:55:08 +00:00
Jakob Bornecrantz
f13f911e8a
c/main: Implement prepare_session and poll_events
2020-06-25 15:48:34 +01:00
Pete Black
bd5aa24463
xrt: Add multi client and overlay client support
2020-06-25 15:48:34 +01:00
Jakob Bornecrantz
a26fa7bbdc
c/client: Tidy whitespace
2020-06-25 12:58:22 +01:00
Jakob Bornecrantz
b75f4f844b
xrt: Add frame_id to compositor frame calls
2020-06-23 21:31:00 +01:00
Lubosz Sarnecki
0dbbe423d9
c/layer_renderer: Implement eye visibility.
2020-06-18 16:03:49 +01:00
Jakob Bornecrantz
e76f698463
c/main: Respect alpha blending layer flag
2020-06-18 16:03:49 +01:00
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
Lubosz Sarnecki
d81b3797ba
c/meson: Expose include directory in meson
2020-04-22 22:00:13 +01:00
Pete Black
ccb1b911f6
c/client: Get the supported formats from the fd compositor
2020-04-22 22:00:13 +01:00
Jakob Bornecrantz
c8b4a00482
comp: Delay swapchain destruction until a safe time, like end frame.
2020-04-15 19:57:46 +01:00
Lubosz Sarnecki
916d7708c2
c/renderer: Don't wait for device idle every frame.
...
Do wait on device idle when destroying the swap chain.
Don't wait on device idle multiple times in resize.
Validation on NVIDA and AMD is happy when only keeping
the two idles when resizing and destroying the swapchain.
2020-04-15 18:07:17 +02:00
Lubosz Sarnecki
e477452ac6
c/renderer: Add fences for each command buffer.
...
Wait for fences on vkQueueSubmit.
2020-04-15 18:07:17 +02:00
Lubosz Sarnecki
bda1cdaee1
c/renderer: Use only one buffer counter cache.
...
Use the same counter for frame and command buffers, as their number is
equal, which is retrieved from swapchain.image_count.
Use the struct member num_buffers in favor of passing it as parameter.
Reuse some command buffer functions.
2020-04-15 16:43:57 +02:00
Lubosz Sarnecki
ddc7ceb214
c/renderer: Don't wait on device idle after acquiring swapchain image.
...
vkAcquireNextImageKHR is synchronized with the present_complete
semaphore.
2020-04-15 16:43:57 +02:00
Lubosz Sarnecki
a34ad629f7
c/renderer: Don't wait idle queue after present.
...
This is not nesseccary as the vkQueuePresentKHR is synchronized by the
render_complete semaphore.
2020-04-15 16:38:54 +02:00
Lubosz Sarnecki
6cb99ea8bf
c/renderer: Return false when vkEndCommandBuffer fails.
2020-04-15 14:00:35 +02:00
Pete Black
c02f89dc18
comp: Spell check
2020-04-09 17:34:27 +01:00
Lubosz Sarnecki
bf49a421ba
c/direct: Use common init swapchain function.
...
Simplify and add error messages.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki
77207ed585
c/direct: Shorten displays member names.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki
29b771818e
c/direct: Move common direct mode code to comp_window_direct.
...
Create code file for common direct mode code.
Make common functions take generic parameters.
Use common code in randr and nvidia back ends.
Remove redunant includes.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki
94bc4cba28
c/direct: Split NVIDIA and RandR backends.
...
Rename functions and structs.
Define unused function overrides separatelty.
c/window: Define new backend init methods.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki
4ddcca7abd
w/direct_mode: Use same num_displays variable for NVIDIA and RandR.
2020-04-09 16:15:17 +00:00
Pete Black
80d1d29cb5
comp: Tidy and spell check
2020-04-09 14:50:35 +01:00
Jakob Bornecrantz
6fe02588f9
comp: Get num_images from the fd compositor
2020-04-08 15:20:36 +01:00
Lubosz Sarnecki
6b05c216ce
c/settings: Add a bunch of display strings to NVIDIA whitelist.
...
Whitelist Oculus DK1, DK2 and CV1.
Whitelist Vive Pro and Valve Index.
2020-04-07 13:45:11 +00:00
Lubosz Sarnecki
56a8e80844
c/direct_mode: Print meaningful error if no display matches NVIDIA whitelist.
2020-04-07 13:45:11 +00:00
Lubosz Sarnecki
7da70568be
c/direct_mode: Use VkDisplayModeParametersKHR.
...
In favor of own struct to determine best available mode.
The loop now also starts as one, as we do not need compare the 0th mode
it itself and returns if there is only one mode.
2020-04-07 15:38:11 +02:00
Lubosz Sarnecki
7afb012544
c/direct_mode: Check if NVIDIA path found any displays.
...
This helps failing earlier with an NVIDIA Optimus setup, which currently
is not supported.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
6158a23dd9
c/direct_mode: Port to plain C.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
16d6500923
c/direct_mode: Don't cache enumerated modes in a std:map.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
015d9457fe
c/direct_mode: Extract append_randr_display function
...
Don't allocate string when it's not needed.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
b399960f67
c/direct_mode: Cast display int only for comparision with size().
...
It is clearer to leave `int display` from settings as signed integer and
cast only for the comparision with the unsigned vector size.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
a449ed174a
c/direct_mode: Create append_nvidia_entry_on_match function.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
f8c99b0230
c/direct_mode: Use ARRAY_SIZE macro.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
c0ae309415
c/direct_mode: Remove unused nv_modes map.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
865b668ee7
c/xcb: Port to plain C.
...
The code was already essentialy C, just needed to replace the pairs with
structs and the vector with an array, it was fixed length anyway.
The code feels more natural in C.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
1b7b8c163f
comp: Further remove unused struct field initializers.
2020-04-01 12:50:10 +00:00
Lubosz Sarnecki
b6d8d4b458
comp: Don't initialize unused fields in Vulkan structs.
...
In order to save redundancy with initializing empty fields with NULL / 0
values and improve readability of the Vulkan code.
This patch also uses struct initializers where possible.
This essentially reverts 1eae45212e
.
2020-04-01 12:50:10 +00:00
Lubosz Sarnecki
4d0c49096d
comp/window_direct_mode: Use XCB/Xlib interop.
...
Since there currently is no Vulkan extension that takes XCB handles to
aqcuire the display Xlib interop needs to be used.
Before this patch Monado was opening connections for both APIs, which
introduced overhead.
Even though all XCB handles can be casted to Xlib ones, this cannot be
done with the main xcb_connection_t / Display. In it's design the
interop between both APIs can create a xcb_connection_t from a XCB
handle, but not the other way round. So in an interop case the Xlib
connection is the main one, since it's on a higher level.
More information on this can be found here:
https://xcb.freedesktop.org/MixingCalls/
Unfortunately the clean solution for this would be to specify a Vulkan
extension that takes XCB handles. This would make sense since Vulkan
is aware of XCB in other parts of the API as well. In Mesa the Xlib
structs will be ultimately casted to XCB.
2020-03-31 17:47:17 +02:00
Lubosz Sarnecki
20f281631b
comp: Don't leak xcb replies.
...
According the XCB documentation the reply structs must be freed. I found
this when running a minimal example related to the direct mode code in
valgrind.
2020-03-31 17:47:01 +02:00
Jakob Bornecrantz
a54b92162e
comp: Fix accidental code change from commit 9b662596
...
Spotted by @mpiatka.
2020-03-09 14:40:10 +00:00
Christoph Haag
e8ccb07db7
st/gui: Add compositor frame timing graph to debug ui
2020-03-09 12:59:12 +01: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
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
b1b451eb96
comp: Fix 32-bit warnings
2020-03-03 10:50:41 +00:00
Ryan Pavlik
5af6182810
comp: Fix 32-bit porting issues.
2020-03-03 10:33:14 +00:00
Ryan Pavlik
ffa5a76cea
comp/client: More 32-bit porting fixes
2020-03-03 10:33:14 +00:00
Ryan Pavlik
fdaede836c
build: Make it possible to turn off the main compositor lib and runtime target.
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
ca3c266dc1
comp: Split client and main in the build system as well
2020-03-02 12:01:04 +00:00
Jakob Bornecrantz
8c06787d93
comp: Refactor documentation
2020-03-02 12:00:22 +00:00
Jakob Bornecrantz
b308facf90
comp: Move all glue code into client folder
2020-03-02 12:00:22 +00:00
Jakob Bornecrantz
3ca7fbf2f0
comp: Remove common directory
2020-03-02 12:00:22 +00:00
Jakob Bornecrantz
aeef692e08
xrt: Refactor out main compositor creating into own interface
2020-03-02 12:00:22 +00:00
Jakob Bornecrantz
09aa8794b2
aux/vk: Refactor out helper code into own library
2020-03-02 11:58:40 +00:00
Jakob Bornecrantz
d4928e1a1c
comp: Improve comment on vk_bundle
2020-02-29 21:09:18 +00:00
Jakob Bornecrantz
e80775fb63
comp: Reuse vk_create_view function in swapchain
2020-02-29 21:09:18 +00:00
Christoph Haag
1cf742a3dc
comp: Add XRT_COMPOSITOR_DESIRED_MODE env var to choose mode for direct mode.
...
The variable should be set to the index in the enumeration of a modes according to VK_KHR_display.
Monado can print a list of available modes with their indices with the env var XRT_COMPOSITOR_PRINT_MODES=1.
2020-02-19 13:51:00 +00:00
Christoph Haag
c2250e5af0
comp: print available modes with XRT_COMPOSITOR_PRINT_MODES=1
...
To not clutter the user's output with debug info, add a variable to print only the available modes.
2020-02-19 13:51:00 +00:00
Christoph Haag
6b8103f31b
comp: Update nominal frame interval to match chosen mode in direct mdoe
...
This value is used in xrWaitFrame() to throttle the application's rendering
down to the refresh rate of the HMD.
2020-02-19 13:51:00 +00:00
Christoph Haag
36d6b71e8a
comp: Choose best mode for direct mode by default
...
Best mode means: first maximize the rendered pixels, then maximize the refresh rate.
2020-02-19 13:51:00 +00:00
Jakob Bornecrantz
2114fc877d
comp: Add option to draw wireframe
2020-01-25 20:19:13 +00:00
Ryan Pavlik
e35c87d59e
comp: Fix glXGetProcAddress prototype when building as C++
2020-01-16 22:37:43 +00: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
682f41a37c
comp: Fix build when VK_USE_PLATFORM_XLIB_XRANDR_EXT is not defined
2020-01-14 11:51:12 -06:00
Ryan Pavlik
358cde31b7
comp: Add a comment explaining why a function is guarded
2020-01-14 11:51:12 -06:00
Ryan Pavlik
6d60227e06
comp: More renaming for clarity
2019-12-07 18:25:37 +00:00
Ryan Pavlik
9668437c78
comp: Rename comp_xlib_client to indicate it's also GL related
2019-12-07 18:25:37 +00:00
Ryan Pavlik
a6d9eea394
comp: Port memory allocation to the helper macros
2019-12-07 18:24:56 +00:00
Christoph Haag
fcd43180e6
comp: Error when forcing a nonexistent vulkan gpu index
...
Instead of segfaulting.
2019-12-03 20:33:46 +01:00
Ryan Pavlik
90e57a4e8a
xrt: Fix types related to EGL.
...
Fixes #46
2019-12-03 09:30:31 -06:00
Simon Ser
9347ecfe00
xrt: check arraySize==1 when using OpenGL ES 2
...
Only OpenGL ES 3 supports GL_TEXTURE_2D_ARRAY.
2019-11-18 15:16:16 +01:00
Simon Ser
81cace0250
comp: replace glCreateTextures with glGenTextures+glBindTexture
...
glCreateTextures is only available on OpenGL 4.5. It's not supported on
OpenGL ES.
2019-11-18 15:16:16 +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
08e898c111
comp: Do not use cut-off in vive shader
2019-11-14 15:12:17 +00:00
Julian Eisel
05b069b0a0
Fix two use-after-free's and multiple memory leaks
2019-11-13 21:53:16 +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
Ryan Pavlik
e8660a18bd
build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
...
Reduces repetitive code.
2019-11-01 16:51:54 -05:00
Simon Ser
36102bfa1e
comp: make Wayland window unresizable
...
This prevents the compositor from issuing resize requests. We ignore
those anyway.
2019-10-31 16:42:26 +01:00
Jakob Bornecrantz
b5ee4f0dbd
comp: Make it obvious that you should implement destroy yourself
2019-10-30 11:06:02 +00:00
Christoph Haag
7d9ef2f371
comp: Add setting to force a vulkan gpu index
2019-10-25 21:05:06 +02:00
Jakob Bornecrantz
9b6625961a
comp: Implement new mesh shader
2019-10-25 13:05:54 +00:00
Ryan Pavlik
e90ea99aa8
comp: Adjust frame waiting logic to behave correctly.
...
Some sub-calculations are still slightly hacky,
but now the overall structure is correct.
2019-10-23 17:18:46 +02:00
Jakob Bornecrantz
742fe05dd8
comp: Cody style shaders
2019-10-23 11:07:33 +01:00
Jakob Bornecrantz
127e5e67b4
comp: Cut-off is not needed
2019-10-23 10:21:33 +01:00
pblack
e32902843c
comp: Add chromatic aberration correction to mesh
2019-10-22 14:44:26 +01:00
Jakob Bornecrantz
315d3b65f1
comp: Do not destry VK_NULL_HANDLE buffers and memory
2019-10-10 22:11:09 +01:00
Jakob Bornecrantz
e86628884b
comp: Add disabled shader debugging code
2019-10-10 13:28:01 +01:00
Jakob Bornecrantz
2db8138e8e
comp: Hack in a flip of the right eye
2019-10-10 13:28:01 +01:00
Jakob Bornecrantz
fafbe287e1
comp: Clamp UV textures to a black border
2019-10-10 13:28:01 +01:00
pblack
898c1b4a9f
comp: Add mesh distortion shader
2019-10-10 13:28:01 +01:00
Jakob Bornecrantz
e327d56bf4
aux/ogl: Introduce a single small OpenGL library
2019-10-09 17:07:23 +01:00
Jakob Bornecrantz
68e7544f57
comp: Free window swapchain VkImageViews & VkSwapchainKHR
2019-10-08 00:04:25 +01:00
Jakob Bornecrantz
649bf88379
comp: Make sure to free VkImageViews on swapchains
2019-10-07 23:48:39 +01:00
Jakob Bornecrantz
0108207b3d
comp: Use VK_NULL_HANDLE
2019-10-07 23:27:09 +01:00
Jakob Bornecrantz
1d9009a461
comp: Set array_size
2019-10-07 23:26:43 +01:00
Benjamin Saunders
3d5872f346
comp: Fix missing usages on Vulkan client swapchains
2019-10-07 22:08:56 +01:00
Lubosz Sarnecki
979536dd4b
xrt/comp/cmake: Enable build of Wayland backend.
...
Add pkgconfig based Wayland build including protocol generation.
2019-10-02 12:22:42 +02:00
Jakob Bornecrantz
5cd4d272a2
comp: Code style, pointer star location
2019-09-29 11:45:23 +01:00
Drew DeVault
b4f0c79abd
comp_compositor.c: prefer Wayland over XCB
2019-09-26 12:15:27 -04:00
Drew DeVault
9bcfa56f2f
compositor: overhaul Wayland backend
...
This simplifies the Wayland backend, fixes the build configuration for
it, ports it to xdg-shell stable, and reworks some false assumptions
from the original port.
2019-09-26 12:15:27 -04:00
Drew DeVault
064aef3526
build: port to meson
2019-09-26 15:05:22 +00:00
Drew DeVault
c6586cfd1e
comp_compositor: use nanosleep instead of usleep
...
Improves portability
2019-09-26 15:05:22 +00:00
Jakob Bornecrantz
5de401ea58
comp: Tidy wait frame
2019-08-31 14:17:41 +01:00
Jakob Bornecrantz
cfb1ca3052
comp: Ensure nominal_frame_interval_ns is a sane value
2019-08-31 14:17:41 +01:00
Christoph Haag
d9736ba3b7
comp: wait for next frame in xrWaitFrame
...
fixes 6e396ed
It was unnecessary to move the wait to xrEndFrame.
It does not matter if the compositor renders the frame immediately because the
frame physically can not be displayed before the next HMD refresh.
On the other hand, leaving too short of a time for the compositor to render
may delay the frame past its predicted time.
2019-08-20 10:10:10 +00:00
Jakob Bornecrantz
042d30c590
comp: Fix warnings
2019-08-17 10:34:12 +01:00
Ryan Pavlik
e21b495f90
comp: Comment a resource and memory leak
2019-08-16 17:25:19 -05:00
Ryan Pavlik
2aca9821fa
comp: Clang-tidy
2019-08-16 17:20:01 -05:00
Ryan Pavlik
dbf0bdd014
comp: Factor out some shared functionality.
...
Simplifies error handling as well.
2019-08-16 17:12:35 -05:00
Nova King
2d016b3385
xrt: Added support for XR Swapchain flags
2019-08-16 22:06:28 +00:00
Ryan Pavlik
1eae45212e
comp: Complete initializers for Vulkan structures
2019-08-16 10:54:49 -05:00
Christoph Haag
6e396ed07e
comp: Add hack waiting on xrEndFrame() until frame should be displayed.
...
xrWaitFrame() doesn't block at all, will only predict the time for the next frame.
Once the compositor is multithreaded, this wait should be moved to the compositor thread
and xrWaitFrame should be the function to block until the compositor finished rendering the frame.
2019-08-15 12:29:58 +00:00
Christoph Haag
8cda1b6f67
comp: fix cleanup of direct window, delete with correct type
...
Found by gcc address sanitizer.
2019-08-13 01:47:50 +02:00
Ryan Pavlik
edfa0323a3
comp: Use U_ZERO
2019-06-18 14:14:01 -05:00
Ryan Pavlik
b004f95503
comp: Adjust initialization order to match declaration.
2019-06-18 18:43:20 +00:00
Ryan Pavlik
21e324ed57
comp: Codespell fix
2019-06-18 13:09:59 -05:00
Jakob Bornecrantz
4c6de83ea9
comp: Fix uninitialised errors from Valgrind
...
```txt
Conditional jump or move depends on uninitialised value(s)
at 0x6A5A7A0: vk_select_physical_device (comp_vk.c:847)
by 0x6A5AAF9: vk_create_device (comp_vk.c:916)
by 0x6A5CD82: compositor_check_vulkan_caps (comp_compositor.c:401)
by 0x6A5D659: comp_compositor_create (comp_compositor.c:656)
by 0x6A5F99B: xrt_gfx_vk_provider_create (comp_glue_vk.c:57)
by 0x6A78197: oxr_session_populate_vk (oxr_session_vk.c:32)
by 0x6A77E59: oxr_session_create_impl (oxr_session.c:536)
by 0x6A77F53: oxr_session_create (oxr_session.c:567)
by 0x6A6EA74: oxr_xrCreateSession (oxr_api_session.c:44)
by 0x2632A8: xrCreateSession (in hello_xr)
by 0x239F0D: (anonymous namespace)::OpenXrProgram::InitializeSession() (in hello_xr)
by 0x22ED25: main (in hello_xr)
Uninitialised value was created by a stack allocation
at 0x6A5CB05: compositor_check_vulkan_caps (comp_compositor.c:349)
```
2019-06-11 15:27:31 +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
Benjamin Saunders
74165d7e0e
comp: Support sRGB swapchain under OpenGL
2019-05-04 13:25:24 -07:00
Jakob Bornecrantz
690a354bd1
comp: Code style
2019-05-02 14:07:41 +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
Benjamin Saunders
f6b8cb25b8
comp: Respect swapchain array size
2019-05-01 17:45:43 -07:00
Jakob Bornecrantz
2caa08f8a8
comp: Debug print more info
2019-04-25 06:46:20 +01:00
Jakob Bornecrantz
95f24f4735
comp: Debug print Vulkan device and version
2019-04-25 06:34:34 +01:00
Jakob Bornecrantz
86d906cb4d
comp: Refactor documentation
2019-04-06 13:05:35 +01:00
Jakob Bornecrantz
76c9cd4c67
comp: Filter distortion texture lineary
2019-04-03 17:54:16 +01:00
Jakob Bornecrantz
1873d3a1d2
comp: Tidy code
2019-04-03 17:24:06 +01:00
Pete Black
df2b6da078
comp: Add NVIDIA direct mode code
2019-04-03 17:02:07 +01:00
Pete Black
ecec5f1a1a
comp: Make surface format selection more flexible
2019-04-03 17:02:07 +01:00
Jakob Bornecrantz
c6b4b7916a
comp: Refactor vk_get_loader_functions function
2019-04-03 17:00:43 +01:00
Lubosz Sarnecki
bbf484f51e
comp: Free client command pool.
...
As pointed out by Vulkan validation on the client intance.
2019-03-29 11:00:57 +01:00
Lubosz Sarnecki
00afe442f8
comp: Introduce XRT_COMPOSITOR_VULKAN_VALIDATION.
...
For enabling Vulkan validation during runtime.
Add CMake option to disable Vulkan validation at build time.
By default the DEBUG extension is enabled but the validation layers
are not when the ENV variable is not set to true.
2019-03-29 10:59:41 +01:00
Ryan Pavlik
8c37377853
comp: Keep track of nominal display interval and last time
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
Ryan Pavlik
c38026e571
comp: Fix comment typo.
2019-03-22 14:19:19 -05:00
Ryan Pavlik
5b4c3a2f94
comp: Use U_TYPED_CALLOC/U_TYPED_ARRAY_CALLOC
2019-03-22 13:50:29 -05:00
Ryan Pavlik
f7d990c7e3
xrt: Use U_TYPED_CALLOC
2019-03-22 13:47:51 -05:00
Ryan Pavlik
afd20250ed
comp: Fix Vulkan type issues.
2019-03-22 16:54:14 +00:00
Christoph Haag
b8c5ba4bc9
comp: handle acquiring direct mode failing
2019-03-22 16:41:53 +00:00
Lubosz Sarnecki
52e11ac4c5
comp: Move VIVE distortion properties to UBO.
2019-03-18 14:45:31 +01:00
Lubosz Sarnecki
6f5ef7a0cb
comp: Rename ubo_data to ubo_pano.
2019-03-18 14:45:31 +01:00
Jakob Bornecrantz
15a97422ba
xrt: Add all of Monado
2019-03-18 05:52:32 +00:00