Jakob Bornecrantz
41817b6e11
c/client: Tidy EGL code (NFC)
2021-05-05 16:14:00 +00:00
Jakob Bornecrantz
1af00e7cbe
c/client: Fix swapchain leak
2021-04-30 21:56:09 +00:00
Jakob Bornecrantz
76ed4d16ce
c/client: Tidy and lower the logging level
2021-04-28 12:25:53 +00:00
Ryan Pavlik
2dd81f53e3
comp: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Jakob Bornecrantz
41ad1dcf99
c/main: Better Vulkan error printing
2021-04-26 22:56:08 +01:00
Jakob Bornecrantz
159eeb81a7
c/main: Pass in preferred dimensions to create images
...
Fixes #120
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz
9c4b41f58e
c/main: Assert that preferred dimensions are somewhat valid
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz
2efd2f543f
c/main: Tidy code in comp_target_swapchain (NFC)
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz
5915318654
c/main: Clarify in code that it is preferred dimensions (NFC)
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz
ceb6c8b3fe
c/main: Remove trailing newline in error message (NFC)
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz
846a663942
c/main: Make instance extension list more readable (NFC)
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz
64093dfaaf
c/main: Expose more formats
2021-04-26 20:26:30 +01:00
Jakob Bornecrantz
a377fb135f
c/client: Vulkan formats are listed as numbers not hex
2021-04-26 18:52:31 +00:00
Jakob Bornecrantz
c1d18f9b25
c/client: Add support for more formats in GL
2021-04-26 18:52:31 +00:00
Jakob Bornecrantz
7af531a6c5
c/main: Refactor so we can do an early acquire
2021-04-21 17:56:29 +00:00
Christoph Haag
c47775a95d
comp: Fix warning after Vulkan 1.2.174 VK_NULL_HANDLE change
...
../src/xrt/compositor/main/comp_layer_renderer.c:317:17: warning: initialization of 'unsigned int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
317 | .subpass = VK_NULL_HANDLE,
| ^~~~~~~~~~~~~~
2021-04-19 13:04:59 +02:00
Jakob Bornecrantz
daff92a275
c/main: None functional refactor of renderer.
...
Not ment to change the functionallity of the code only reflow the code.
2021-04-17 00:12:22 +01:00
Jakob Bornecrantz
5d605c7b3f
c/main: Do not create images when initing swapchain.
2021-04-16 02:27:22 +01:00
Ryan Pavlik
1521953813
c/main: Re-arrange comp_renderer to allow late init.
...
Co-author: Jakob Bornecrantz <jakob@collabora.com>
2021-04-16 02:27:22 +01:00
Ryan Pavlik
1cf39ec2c0
c/main: Add comp_target::has_images, and implement in comp_target_swapchain.
2021-04-16 01:51:05 +01:00
Ryan Pavlik
90192118d0
c/main: Add comp_target::check_ready, and implement in comp_target_swapchain.
2021-04-16 01:45:38 +01:00
Jakob Bornecrantz
780ec4fac9
c/main: Turn debug into spew
2021-04-16 01:45:38 +01:00
Ryan Pavlik
7c2ea1369f
c/main: Normalize destroy pattern for comp_renderer.
2021-04-15 23:28:47 +01:00
Ryan Pavlik
70982e9c39
c/main: Remove unimplemented comp_renderer function.
2021-04-15 23:28:47 +01:00
Ryan Pavlik
04c9a7d892
c/main: Normalize comp_layer_renderer_destroy convention.
2021-04-15 23:28:47 +01:00
Ryan Pavlik
ffe458fdba
c/main: Add comp_layer_renderer docs.
2021-04-15 23:28:47 +01:00
Ryan Pavlik
80da6fe3b8
c/main: Add comp_renderer docs.
2021-04-15 23:28:47 +01:00
Ryan Pavlik
ab5f9ae9d8
c/main: Add comp_target docs.
2021-04-15 23:28:47 +01:00
Ryan Pavlik
969c78efbd
c/client: Fix comment.
2021-04-15 23:28:47 +01:00
Jakob Bornecrantz
7dc132a207
c/client: Set correct reference on swapchain
2021-04-13 23:21:14 +01:00
Jakob Bornecrantz
b48cdfed44
c/main: Fix xrt_compositor::wait_frame
2021-04-13 16:56:17 +00:00
Jakob Bornecrantz
4507804819
c/multi: Implement xrt_compositor::wait_frame
2021-04-13 16:56:17 +00:00
Ryan Pavlik
cb2710db87
comp: Improve docs on comp_target_swapchain
2021-04-13 11:46:53 -05:00
Ryan Pavlik
1e1fe01374
comp: Doc improvements.
2021-04-13 11:46:53 -05:00
Jakob Bornecrantz
1b51cbd1a7
aux/vk: Add support for VK_EXT_global_priority
2021-04-12 22:16:31 +00:00
Jakob Bornecrantz
796f3cf792
c/main: Set default logging level to INFO
2021-04-12 22:16:31 +00:00
Jakob Bornecrantz
c9c362e16a
c/multi: Overwrite stale scheduled frames
2021-04-12 22:16:31 +00:00
Jakob Bornecrantz
b0c9f2a1d9
c/multi: Break potential long running tasks into functions for better trace_marker logging
2021-04-12 22:16:31 +00:00
Jakob Bornecrantz
95e95ba9b5
c/render: Tidy mesh shader
2021-04-12 22:16:31 +00:00
Ryan Pavlik
1ce306cb55
cmake: Fix include dir scope for comp_multi
2021-04-09 18:11:46 -05:00
Ryan Pavlik
dde274b13e
comp: Fix typo.
2021-04-09 18:11:52 +01:00
Jakob Bornecrantz
aca09bdebf
c/multi: Do not display frames before they are to be displayed
...
This follows the OpenXR spec that says that a frame might not be
displayed before XrFrameEndInfo::displayTime value.
2021-04-07 15:41:47 +01:00
Jakob Bornecrantz
8215af5e5c
u/rt: Refactor render timing
2021-04-07 01:04:20 +01:00
Jakob Bornecrantz
971f88f34f
u/ft: Rename frame timing functions
2021-04-07 00:50:10 +01:00
Jakob Bornecrantz
5dbcca65c5
u/tr: Refactor rendering timing code
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
086bef8545
c/multi: Add new multi-client helper
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
ace8dc8c46
comp: clean up comment
2021-03-30 20:46:00 +00:00
Ryan Pavlik
8553b5f901
comp/vk_client: Be sure to init/de-init the mutexes in the vulkan bundle
2021-03-30 20:46:00 +00: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
7b92d212a2
comp: Fix doxygen warnings
2021-03-26 17:10:53 -05: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
0452c69caa
c/main: Detect when config is needed but missing
2021-03-12 00:06:36 +00:00
Jakob Bornecrantz
0571e0337e
xrt: Add XRT_ERROR_EGL_CONFIG_MISSING error
2021-03-12 00:06:36 +00:00
Jakob Bornecrantz
8be59f73ec
xrt: Return xrt_result_t from xrt_gfx_provider_create_gl_egl
2021-03-12 00:06:36 +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
Mateo de Mayo
75e908552f
doc: Fix missing entities from modules documentation
2021-03-06 20:34:35 -03: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
Christoph Haag
b64b6f75fe
comp: Return proper errors for OpenGL 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
c97404e873
comp/vk_client: Improve error messages.
...
As we use u_logging here, new lines are redundant. Also showing the
VkError code is handy.
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
Jakob Bornecrantz
eea8036e91
c/client: Ensure that EGL_ANDROID_native_fence_sync
2021-01-11 16:50:02 +00:00