Monado OpenXR Runtime
xrt_gfx_vk.h
Go to the documentation of this file.
1// Copyright 2019-2024, Collabora, Ltd.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Header defining an XRT graphics provider.
6 * @author Jakob Bornecrantz <jakob@collabora.com>
7 * @author Korcan Hussein <korcan.hussein@collabora.com>
8 * @ingroup xrt_iface
9 */
10
11#pragma once
12
13#include "xrt/xrt_device.h"
14#include "xrt/xrt_compositor.h"
16
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22struct time_state;
23
24
25/*!
26 * @brief A space-delimited string of Vulkan instance extensions required from a
27 * client.
28 *
29 * Should be kept synchronized with the "Client" column in @ref
30 * vulkan-extensions
31 *
32 * @ingroup xrt_iface
33 */
34extern const char *xrt_gfx_vk_instance_extensions;
35
36/*!
37 * @brief A space-delimited string of Vulkan device extensions required from a
38 * client.
39 *
40 * Should be kept synchronized with the "Client" column in @ref
41 * vulkan-extensions
42 *
43 * @ingroup xrt_iface
44 */
45extern const char *xrt_gfx_vk_device_extensions;
46
47/*!
48 * @ingroup xrt_iface
49 */
50void
51xrt_gfx_vk_get_versions(struct xrt_api_requirements *ver);
52
53/*!
54 * Create a Vulkan compositor client.
55 *
56 * @ingroup xrt_iface
57 * @public @memberof xrt_compositor_native
58 */
59struct xrt_compositor_vk *
61 VkInstance instance,
62 PFN_vkGetInstanceProcAddr get_instance_proc_addr,
63 VkPhysicalDevice physical_device,
64 VkDevice device,
65 bool external_fence_fd_enabled,
66 bool external_semaphore_fd_enabled,
67 bool timeline_semaphore_enabled,
68 bool image_format_list_enabled,
69 bool debug_utils_enabled,
70 bool renderdoc_enabled,
71 uint32_t queue_family_index,
72 uint32_t queue_index);
73
74
75#ifdef __cplusplus
76}
77#endif
const char * xrt_gfx_vk_instance_extensions
A space-delimited string of Vulkan instance extensions required from a client.
Definition: comp_vk_glue.c:20
struct xrt_compositor_vk * xrt_gfx_vk_provider_create(struct xrt_compositor_native *xcn, VkInstance instance, PFN_vkGetInstanceProcAddr get_instance_proc_addr, VkPhysicalDevice physical_device, VkDevice device, bool external_fence_fd_enabled, bool external_semaphore_fd_enabled, bool timeline_semaphore_enabled, bool image_format_list_enabled, bool debug_utils_enabled, bool renderdoc_enabled, uint32_t queue_family_index, uint32_t queue_index)
Create a Vulkan compositor client.
const char * xrt_gfx_vk_device_extensions
A space-delimited string of Vulkan device extensions required from a client.
Time-keeping state structure.
Definition: u_time.cpp:30
A range of API versions supported.
Definition: xrt_defines.h:580
Main compositor server interface.
Definition: xrt_compositor.h:2224
Base class for a Vulkan client compositor.
Definition: xrt_compositor.h:2019
Header declaring XRT graphics interfaces.
Header defining an xrt display or controller device.
Include all of the Vulkan headers in one place, and cope with any "messy" includes implied by it.