Jakob Bornecrantz
648f49f4ef
c/render: Change argument order to object first
2021-11-03 13:25:15 +00:00
Jakob Bornecrantz
ccc4bbcf86
c/render: Remove unused disable_atw argument
2021-11-03 13:25:15 +00:00
Jakob Bornecrantz
56f4466ffa
c/render: Move shaders to render
2021-11-03 13:25:15 +00:00
Jakob Bornecrantz
8c8d72647b
c/render: Refactor out timewarp matrix into util file
2021-11-03 13:25:15 +00:00
Jakob Bornecrantz
60024efba9
c/render: If we only have a projection layer skip the layer renderer
2021-11-03 13:25:14 +00:00
Jakob Bornecrantz
4ca35b8b3c
c/render: Don't cache comp_rendering
2021-11-03 13:24:20 +00:00
Jakob Bornecrantz
847e322fe5
c/render: Remove stub function decls
2021-11-02 20:19:05 +00:00
Jakob Bornecrantz
d8a580d875
c/render: Tidy compute rendering
2021-11-02 20:19:05 +00:00
Jakob Bornecrantz
f74812f02e
c/render: Refactor rendering code so target data is it's own struct.
2021-11-02 20:19:05 +00:00
Jakob Bornecrantz
08135b6365
c/shaders: Tidy and codestyle
2021-11-02 20:19:05 +00:00
Jakob Bornecrantz
0b9bf9c772
c/main: Do not go via target for compositor
2021-11-02 20:19:05 +00:00
Jakob Bornecrantz
765feb6fe1
c/main: Refactor mesh descriptor and UBO upload
2021-11-02 20:19:05 +00:00
Mario Kleiner
a6185490e8
c/direct: Fix direct display RandR leased output on multi-X-Screen.
...
The old code assumes the HMD is always connected to a RandR
output on X-Screen 0, but this is not neccessarily the case
on multi-X-Screen setups. Use a loop to iterate over all
X-Screens outputs until the HMD output is found.
Tested on single and dual X-Screen setups, also with Oculus
Rift CV1 connected to 2nd X-Screen.
This is rather useful for porting applications from "OpenHMD Rift
on separate X-Screen for performance" to OpenXR Monado direct
mode, so one can quickly switch between Monado and OpenHMD native
without cumbersome xorg.conf + logout + login games.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2021-10-28 12:29:36 +00:00
Ryan Pavlik
782aa11754
comp/main: Initial wiring, but don't actually allow closing the window on Windows for now.
2021-10-15 15:29:58 -05:00
Ryan Pavlik
cb3fc65f14
comp/main: Win32: Spawn a thread for our windowed output.
2021-10-15 15:13:00 -05:00
Ryan Pavlik
2790f6d29f
comp: Fix windows build - near and far are keywords.
2021-10-15 10:15:16 -05:00
Ryan Pavlik
884a312011
build: Fix build with CMake before 3.14
2021-10-01 11:21:35 -05:00
Christoph Haag
2ef9e0aa61
comp: Don't disconnect from NULL wayland_display
...
Fixes crash when not running on wayland.
2021-09-20 13:54:36 +00:00
Jakob Bornecrantz
d36eec8fbb
c/main: Guard against XRT_HAVE_WAYLAND_DIRECT
2021-09-17 11:54:57 +00:00
Jakob Bornecrantz
02d67a52c5
c/main: Guard use of VK_EXT_acquire_drm_display identifier
2021-09-17 11:54:57 +00:00
Jakob Bornecrantz
a58b8df4a9
cmake: Link with WAYLAND_LIBRARIES or SDL gets sad
2021-09-17 11:54:57 +00:00
Simon Zeni
47be806428
c/main: Implement WINDOW_DIRECT_WAYLAND
2021-09-15 18:44:18 +00:00
Jakob Bornecrantz
c5c07eced2
c/render: Remove the hacks
2021-09-14 16:15:27 +00:00
Jakob Bornecrantz
5bff6f3c9b
c/render: Add ATW support for compute rendering
2021-09-14 16:15:27 +00:00
Jakob Bornecrantz
3795004208
c/main: Add compute distortion rendering backend
2021-09-14 16:15:27 +00:00
Christoph Haag
79fe29f674
c/main: Use ns_to_ms helper for nominal frame interval
2021-09-13 21:28:10 +01:00
Christoph Haag
83e194e9d3
comp: Wait for release/acquire fence before destroying swapchain
...
Fixes validation warning when quitting Vulkan OpenXR applications
like hello_xr -G Vulkan2:
VUID-vkDestroyImage-image-01000(ERROR / SPEC): msgNum: -221078694 - Validation Error: [ VUID-vkDestroyImage-image-01000 ] Object 0: handle = 0x55d4d96e4960, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xf2d29b5a | Cannot call vkDestroyImage on VkImage 0xcb1c7c000000001b[] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-vkDestroyImage-image-01000 )
Objects: 1
[0] 0x55d4d96e4960, type: 3, name: NULL
This is an addition to commit 778515739f
that
introduced this fence.
2021-09-07 11:51:03 +02:00
Christoph Haag
527efd379f
comp: debug print the numeric format
...
helps to see which format it is when it can not be translated to a string
2021-09-03 15:32:35 +00:00
korejan
42af354f65
c/multi: Fixes some uninitialized mutexes.
...
Fixes some uninitialized/null mutexes that causes crash bug during the creation of the multi compositors (seen on Windows).
2021-08-21 11:34:33 +01:00
Jakob Bornecrantz
9178e0ef59
c/main: Constify argument
2021-08-17 12:04:49 +01:00
Christoph Haag
778515739f
comp: Guard acquire/release with a fence
...
Fixes validation warning when acquiring images before the command buffer
of the previous acquire or release on the same queue has finished.
VUID-vkQueueSubmit-pCommandBuffers-00071(ERROR / SPEC): msgNum: 774851941 - Validation Error: [ VUID-vkQueueSubmit-pCommandBuffers-00071 ] Object 0: handle = 0x558634c5c750, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x2e2f4d65 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] VkCommandBuffer 0x558634b85a10[] is already in use and is not marked for simultaneous use. The Vulkan spec states: If any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-vkQueueSubmit-pCommandBuffers-00071 )
Objects: 1
[0] 0x558634c5c750, type: 3, name: NULL
2021-08-16 15:52:57 +02:00
Christoph Haag
b249af9415
comp: Bind the correct GL texture for importing memory objects
2021-08-09 15:17:25 +02:00
Christoph Haag
1b179306dc
comp: Only use dedicated allocation when supported/preferred
...
Fixes OpenGL depth formats on Tegra
2021-08-09 15:17:25 +02:00
Jakob Bornecrantz
9d9879ca3e
c/multi: Make sure there are at least some predicted data
...
To avoid asserts in non-service mode.
2021-07-22 17:19:45 +01:00
Christoph Haag
ab209bcf18
c/main: Add return value for when asserts are disabled
...
It's not worth introducing a new error code for this case, just
return XRT_ERROR_VULKAN.
Fixes error with asserts disabled
../src/xrt/compositor/main/comp_compositor.c: In function 'compositor_mark_frame':
../src/xrt/compositor/main/comp_compositor.c:186:1: warning: control reaches end of non-void function [-Wreturn-type]
186 | }
| ^
2021-07-15 01:31:19 +02:00
Ryan Pavlik
2d20a6436c
comp: Wrap a unistd include for Windows.
2021-06-15 17:37:14 -05:00
Jakob Bornecrantz
ebc2208a73
c/main: Also resize on VK_SUBOPTIMAL_KHR
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
9996d686e4
c/main: Tidy
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
1eebc12780
c/main: Refactor out viewport calculation into own function
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
6d011e25d4
c/main: Give the correct queue family argument to vkGetPhysicalDeviceSurfaceSupportKHR
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
f38932cb64
c/main: Tidy comp_renderer fence creation a bit
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
65ca3113f8
c/main: Allow to specifiy image usage for target images
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
fd1a916e0b
c/main: Tidy and add a bit of debug to comp_target_swapchain
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
0f07e5b899
c/main: Tweak swapchain formats a bit
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
928ae5b27a
c/render: Add support for non-freeable descriptor pools
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
6c033658a8
c/render: Add support for storage image descriptors
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
8a7d857dde
aux/vk: Add the option to handle optional device features
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
57d24ecdbb
aux/vk: Make it possible to get a compute only queue
2021-06-15 19:45:14 +00:00
Jakob Bornecrantz
b805742a53
c/main: Do not list VK_FORMAT_A2B10G10R10_UNORM_PACK32 as a supported format
2021-06-15 14:27:07 +00:00
Jakob Bornecrantz
f9b5097134
c/client: Use the EGL compositor's display in swapchain
2021-06-02 14:26:59 +00:00
Jakob Bornecrantz
13a5036b24
c/main: Make temp_vk be a pointer
2021-05-11 16:34:10 +00:00
Jakob Bornecrantz
9b6b5b7e6a
c/main: Do not copy vk_bundle
2021-05-11 16:34:10 +00:00
Jakob Bornecrantz
bd6e15c70c
c/main: Follow style of using vk variable for vk_bundle interactions
2021-05-11 16:34:10 +00:00
Jakob Bornecrantz
3af65d60d2
c/client: Follow style of using vk variable for vk_bundle interactions
2021-05-11 16:34:10 +00:00
Jakob Bornecrantz
35beaeead4
c/client: Add EGL comment (NFC)
2021-05-05 16:14:00 +00:00
Jakob Bornecrantz
c1ac7fc679
c/client: s/comp_egl_glue.c/comp_egl_client.c (NFC)
2021-05-05 16:14:00 +00:00
Jakob Bornecrantz
3a537b8374
c/client: Tidy EGL code (NFC)
2021-05-05 16:14:00 +00:00
Jakob Bornecrantz
12489295cb
c/client: Do not blindly try to restore no EGLDisplay contexts
2021-05-05 16:14:00 +00:00
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