Commit graph

309 commits

Author SHA1 Message Date
Jakob Bornecrantz 95e95ba9b5 c/render: Tidy mesh shader 2021-04-12 22:16:31 +00:00
Ryan Pavlik dde274b13e comp: Fix typo. 2021-04-09 18:11:52 +01:00
Jakob Bornecrantz 971f88f34f u/ft: Rename frame timing functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz f14958f2b0 c/main: Explicitly wait for GPU work to finish 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz bf2a90fec5 c/main: Switch to multi client layer 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 205db10353 c/main: Implement new predict and mark frame functions 2021-04-07 00:50:10 +01:00
Ryan Pavlik 22df47f974 c/main: Port to using u_graphics_sync_unref 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 2035da1ec9 c/main: Implement fence functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz efdba1602f xrt: Pass along display_time_ns to layer begin 2021-04-07 00:50:10 +01:00
Moses Turner b62b6eaef7 c/main: Follow OpenXR spec with blackground colour, tweek no layer colour.
Make background colour completely black if there are layers to display, to
follow OpenXR spec. Make the default background colour darker.
2021-04-04 20:34:35 +01:00
Ryan Pavlik d34e1464fd comp: Update file header. 2021-04-02 18:02:10 -05:00
Ryan Pavlik c81ae4670b comp: Properly service Windows message queue. 2021-04-02 17:47:40 -05:00
Ryan Pavlik 0139aa1525 comp: Fix conversion warnings 2021-03-31 12:02:41 -05:00
Ryan Pavlik d4c352ef69 comp: Improve Windows errors. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 942091c10d comp: Enable VK_EXT_debug_report extension 2021-03-31 12:02:41 -05:00
Ryan Pavlik 592df37c0f comp: Fix some narrowing conversion warnings 2021-03-31 12:02:41 -05:00
Ryan Pavlik 78301ae5eb comp: Use precise sleeper. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 3f2b09ae54 comp: Comment cleanup 2021-03-30 20:46:00 +00:00
Ryan Pavlik be5a273659 comp/main: Use the new vk_bundle mutex functions. 2021-03-30 20:46:00 +00:00
Ryan Pavlik b57d52f373 comp/main: Fix warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik bd00c7ffd3 comp/main: Deal with MSVC not liking static array sizes being non-constant. 2021-03-26 17:06:17 -05:00
Ryan Pavlik 0140ea34b6 comp/main: Implement consumption of sync handle on Windows 2021-03-26 17:06:17 -05:00
Jakob Bornecrantz 63f5c86257 xrt: Make xrt_swapchain be reference counted 2021-03-24 17:50:08 +00:00
Jakob Bornecrantz 8992f79257 c/main: Be even more paranoid about display timing code 2021-03-10 17:53:36 +00:00
Jakob Bornecrantz a6da40de50 c/main: Remove unused fields
Tested-by: Boris-Chengbiao Zhou <bobo1239@web.de>
2021-03-09 18:16:01 +00:00
Jakob Bornecrantz 003b70d05e c/main: Use correct predicted display time for rendering
Closes #114

Reported-by: Boris-Chengbiao Zhou <bobo1239@web.de>
Tested-by: Boris-Chengbiao Zhou <bobo1239@web.de>
2021-03-09 18:15:52 +00:00
Jakob Bornecrantz 8c724d67d4 c/main: Trace markers 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz fac1ce4a5a c/main: Hookup up new frame timing code 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 48c2fe1f87 c/main: Refactor out wait idle to own function 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 616b7f6ae0 c/main: Tidy comp_target_swapchain 2021-02-24 14:33:34 +00:00
Christoph Haag cc81174b70 comp: Fix VkDisplayKHR direct mode build without libx11-xcb 2021-02-10 22:02:30 +01:00
Christoph Haag f5abb14422 comp: Don't allocate ubos with VK_MEMORY_PROPERTY_HOST_CACHED_BIT
On Tegra the only supported combinations for VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT are

* VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
* VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
* VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT

This article agrees that we do not need host cached memory here:
https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/
2021-02-03 02:24:35 +01:00
Jakob Bornecrantz 18fb3e7024 c/main: Lower priority on sRGB format
This works around a bug in the OpenXR CTS and mirrors better what at least on
other OpenXR runtime does.
2021-01-27 15:41:15 +00:00
Jakob Bornecrantz e375523d80 c/main: Also print format when debugging swapchain creation 2021-01-27 14:03:27 +00:00
Christoph Haag b23f04fed9 comp: Return proper errors for Vulkan xrCreateSwapchain 2021-01-26 15:26:47 +00:00
Jakob Bornecrantz afea93f297 xrt: Remove prepare function from xrt_compositor 2021-01-20 15:04:09 +00:00
Jakob Bornecrantz 2b8c835b68 xrt: Introduce xrt_system_compositor 2021-01-20 15:04:09 +00:00
Christoph Haag 9481013081 comp: add VkDisplayKHR window backend
Must be activated/selected with an env var for now: XRT_COMPOSITOR_FORCE_VK_DISPLAY=2
2021-01-19 17:00:46 +00:00
Christoph Haag 5e8338a6de comp: Render with pose for next display time, not last 2021-01-15 18:25:27 +01:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Jakob Bornecrantz a5560f8363 c/main: Remove unused field 2021-01-14 12:30:54 +00:00
Christoph Haag ad1e809dfc comp: Extend nvidia VK_ERROR_INITIALIZATION_FAILED message
The real cause for this failure seems to be an extended desktop to the direct mode
display, not the allowhmd setting.
2021-01-13 23:51:36 +01:00
Christoph Haag f684ae95d1 comp: Fix depth-stencil image validation warning
Depth-only formats must use *only* VK_IMAGE_ASPECT_DEPTH_BIT.
Depth-stencil formats must use both VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT.
2021-01-13 20:39:20 +01:00
Lubosz Sarnecki b005f4e2fa comp/vk: Guard VkCommandBuffer usage with command pool mutex.
Lock all queue submits with 2 mutexes using a new vk_locked_submit
function.
2021-01-13 12:42:26 +01:00
Lubosz Sarnecki fc3b7fef25 comp/vk: Lock command pool calls with a mutex.
This patch resolves multithreading issues as detected by the Vulkan
validation when running the OpenXR CTS using OpenGL.
2021-01-13 12:33:15 +01:00
Lubosz Sarnecki cc44816026 comp/vk: Put queue mutex around vkDeviceWaitIdle calls. 2021-01-13 12:33:15 +01:00
Lubosz Sarnecki 9a9d46b85a comp/vk: Lock our only VkQueue with a mutex.
This resolved mutlithreading issues as seen in the `multithreading` test
of the OpenXR CTS.

This patch fixes the test on Vulkan Android and resolves Vulkan
validation errors when running on Linux with OpenGL.
2021-01-13 12:33:15 +01:00
Christoph Haag 726c752db2 comp: Add support for list of optional device extensions
If one of the supplied optional extensions is VK_GOOGLE_display_timing and it is
supported by the driver, vk_bundle::has_GOOGLE_display_timing will be set to true.
2021-01-07 19:12:41 +01:00
Jakob Bornecrantz 32c9cb1bf3 c/main: Make sure to close sync handles on layer_commit 2020-12-28 15:22:06 +00:00
Jakob Bornecrantz 1302b07d68 xrt: Add sync_handle argument to layer_commit 2020-12-28 15:22:06 +00:00