Commit graph

557 commits

Author SHA1 Message Date
Ryan Pavlik a7c22fd185 a/util: Rename u_render_timing to u_pacing_app and u_frame_timing to u_pacing_compositor.
They both control pacing, but for different uses. Neither actually performs any timing.
2022-01-15 01:06:48 +00:00
Ryan Pavlik 365b3ca8d4 a/util: Make display timing helper more configurable.
Also comment some display timing interfaces better.
2022-01-15 01:06:48 +00:00
Christoph Haag a60fab80e6 c/main: Don't leak non_desktop_reply 2022-01-13 23:46:43 +01:00
Christoph Haag a6935dcc4b c/main: Check surface counter flags 2022-01-13 23:07:46 +01:00
Christoph Haag 8fe465e88f c/main: Make VkDisplayKHR from direct mode accessible in target swapchain 2022-01-13 23:07:34 +01:00
Christoph Haag 73d75aa522 c/main: cache VkDisplayKHR in wayland direct mode window 2022-01-13 23:07:16 +01:00
Christoph Haag 8e020fac2d c/main: Add and enable VK_EXT_display_control optional device ext 2022-01-13 23:06:40 +01:00
Christoph Haag b7d179b1b3 c/main: Add display surface counter optional vk instance ext 2022-01-13 23:06:15 +01:00
Christoph Haag ff4d492b74 c/util: add optional vk instance extensions 2022-01-13 23:05:38 +01:00
Christoph Haag ce6339e237 c/main: Make more use of string list for device ext 2022-01-13 23:05:06 +01:00
Christoph Haag f34816872c c/main: Use u_string_list for vk extensions 2022-01-13 23:04:34 +01:00
Christoph Haag ee366e16e5 c/main: rename extensions num -> count 2022-01-13 23:03:56 +01:00
Christoph Haag 1ae1e695e2 c/util: Fix device extension list comment 2022-01-13 23:03:25 +01:00
Christoph Haag 8d5847d5a9 comp: Fix running with XRT_COMPOSITOR_XCB_FULLSCREEN=1
It required XRT_COMPOSITOR_XCB_DISPLAY to be set to a valid display or the
swapchain creation would fail because the requested width x height was 0x0.

Now the first display with a size other than 0x0 is selected when the current
selected display is 0x0.

fixes #148
2022-01-13 20:50:48 +00:00
Christoph Haag d36123927d comp: avoid an unnecessary struct copy for print modes 2022-01-12 21:57:18 +01:00
Christoph Haag 3dfec5f1ab comp: Don't omit first mode in debug print
Also avoid an unnecessary struct copy.
2022-01-12 21:53:47 +01:00
Antonio Ospite 2b456da531 c/client: make sure layer_commit passes complete frames in comp_gl_client
Make sure `layer_commit` passes on complete frames in `comp_gl_client.c`
even when EGL_ANDROID_native_fence_sync is not available.

The `insert_fence` function defined in `comp_egl_client.c` and passed as
argument to `comp_egl_client::client_gl_compositor_init` is only setting
up a proper fence when EGL_ANDROID_native_fence_sync is available,
resulting in a no-op otherwise.

However the fact that the insert_fence function is still valid results
in the `glFlush` workaround from
`comp_gl_client::client_gl_compositor_layer_commit` not kicking in.

To fix this define a NULL `insert_fence` function when
EGL_ANDROID_native_fence_sync is not available, and while at it turn the
`glFlush` workaround into a `glFinish` for extra safety.

This ensures that frames are always complete after
`client_gl_compositor_layer_commit` has been called.
2022-01-06 14:54:55 +00:00
Ryan Pavlik 1203cf38f0 cmake: Fix build when we have EGL but not GLES headers. 2021-12-13 15:00:24 -06:00
Ryan Pavlik 46d095d978 comp/util: Allow enabling timeline semaphores when creating bundle. 2021-12-08 00:54:12 +00:00
Jakob Bornecrantz 27f80a90d9 c/render: Make it safe to call comp_resources_close in more cases
Fixes #139
2021-12-01 16:08:12 +00:00
Jakob Bornecrantz 0bd38a0a0d c/render: Error on failing to get memory type 2021-11-24 17:05:13 +00:00
Christoph Haag a1c00e14fd st/oxr: Implement a basic version of XR_FB_display_refresh_rate 2021-11-22 20:44:18 +00:00
Jakob Bornecrantz 3f98ea5595 xrt: Tidy s/ll/log_level/g
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Jakob Bornecrantz a56ea7cad6 c/multi: Fix copy-pasto 2021-11-18 20:14:05 +00:00
nima01 70263a6b16 c/util: Use GPU index specified by XRT_COMPOSITOR_FORCE_CLIENT_GPU_INDEX 2021-11-18 14:14:32 +00:00
Ryan Pavlik 185bf61dd8 comp: Migrate num_ to _count 2021-11-13 12:04:38 +00:00
Ryan Pavlik dfa0aba496 aux: Migrate num_ to _count 2021-11-13 12:04:38 +00:00
Ryan Pavlik 33c0287f8b xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)

Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Ryan Pavlik cc4007a69e cmake: Substantial cleanups and simplifications
We now have a cmake-format config file.
We no longer use list variables for sources, instead using
target_sources when we need to add, in accordance with current
best practice. (This makes it a lot easier to edit too.) There's no more
include_directories(), add_definitions(), or other gently-deprecated
directory-scoped commands, nor any CMake scripts that include
a parent directory reference (named targets instead)
2021-11-12 09:48:37 -06:00
Ryan Pavlik 201765d3a7 comp: Populate blend mode list in system compositor info from device 2021-11-12 03:05:10 +00:00
Jakob Bornecrantz 7ecf649ac2 c/render: Use new Vulkan helpers 2021-11-10 14:22:28 +00:00
Jakob Bornecrantz 42b0361852 c/main: Use Vulkan helper in util 2021-11-07 15:14:04 +00:00
Jakob Bornecrantz 7703b7104b c/main: Tidy extensions 2021-11-06 10:51:19 +00:00
Jakob Bornecrantz a97523591f c/util: Add Vulkan helper 2021-11-06 10:51:19 +00:00
Jakob Bornecrantz 56b5918d69 c/main: Fix tab CVK_ERROR macro 2021-11-04 20:57:55 +00:00
Jakob Bornecrantz c912c67dc6 c/main: Use comp_base 2021-11-04 20:57:53 +00:00
Jakob Bornecrantz a1b515616a c/render: Documentation 2021-11-04 20:56:21 +00:00
Jakob Bornecrantz 6e28533bdc c/render: Break out into own library 2021-11-04 20:56:21 +00:00
Jakob Bornecrantz e08c1b1f04 c/util: Add comp_base native compositor helper base class 2021-11-04 20:56:21 +00:00
Jakob Bornecrantz c3b8810bb0 c/util: Documentation 2021-11-04 20:56:20 +00:00
Jakob Bornecrantz 029031cfd3 c/util: Break out swapchain and sync into own library 2021-11-04 20:55:48 +00:00
Jakob Bornecrantz 78936d2b4e c/main: Use get_vk more 2021-11-04 20:54:11 +00:00
Jakob Bornecrantz c6031a26e8 c/main: Refactor fence to be more independent 2021-11-04 20:46:09 +00:00
Jakob Bornecrantz 293d617dd5 c/main: Refactor swapchain to be more independent 2021-11-04 20:46:03 +00:00
Ryan Pavlik 3bd0a07aa2 cmake: Split out finding GLX from the rest of OpenGL on Linux.
Fixes #132.
2021-11-04 15:36:58 +00:00
Jakob Bornecrantz 36765256a6 c/render: Free command buffer when closing rendering 2021-11-03 23:10:47 +00:00
Ryan Pavlik 7a26a2339b comp: Fix some it's vs its. 2021-11-03 17:28:17 -05:00
Jakob Bornecrantz ec9cfa690d c/render: s/rts/rtr/g 2021-11-03 13:28:15 +00:00
Jakob Bornecrantz 12bfc8b5c9 c/render: Do not depend on the compositor 2021-11-03 13:26:42 +00:00
Jakob Bornecrantz c346d812c7 c/render: Add helpers to access the vk_bundle 2021-11-03 13:25:15 +00:00