Monado OpenXR Runtime
xrt_gfx_vk.h
Go to the documentation of this file.
1 // Copyright 2019, Collabora, Ltd.
2 // SPDX-License-Identifier: BSL-1.0
3 /*!
4  * @file
5  * @brief Header defining a XRT graphics provider.
6  * @author Jakob Bornecrantz <jakob@collabora.com>
7  * @ingroup xrt_iface
8  */
9 
10 #pragma once
11 
12 #include "xrt/xrt_device.h"
13 #include "xrt/xrt_compositor.h"
15 
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 struct time_state;
22 
23 
24 /*!
25  * @brief A space-delimited string of Vulkan instance extensions required from a
26  * client.
27  *
28  * Should be kept synchronized with the "Client" column in @ref
29  * vulkan-extensions
30  *
31  * @ingroup xrt_iface
32  */
33 extern const char *xrt_gfx_vk_instance_extensions;
34 
35 /*!
36  * @brief A space-delimited string of Vulkan device extensions required from a
37  * client.
38  *
39  * Should be kept synchronized with the "Client" column in @ref
40  * vulkan-extensions
41  *
42  * @ingroup xrt_iface
43  */
44 extern const char *xrt_gfx_vk_device_extensions;
45 
46 /*!
47  * @ingroup xrt_iface
48  */
49 void
50 xrt_gfx_vk_get_versions(struct xrt_api_requirements *ver);
51 
52 /*!
53  * Create a Vulkan compositor client.
54  *
55  * @ingroup xrt_iface
56  * @public @memberof xrt_compositor_native
57  */
58 struct xrt_compositor_vk *
60  VkInstance instance,
61  PFN_vkGetInstanceProcAddr get_instance_proc_addr,
62  VkPhysicalDevice physical_device,
63  VkDevice device,
64  bool external_fence_fd_enabled,
65  bool external_semaphore_fd_enabled,
66  bool timeline_semaphore_enabled,
67  bool debug_utils_enabled,
68  bool renderdoc_enabled,
69  uint32_t queue_family_index,
70  uint32_t queue_index);
71 
72 
73 #ifdef __cplusplus
74 }
75 #endif
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 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_instance_extensions
A space-delimited string of Vulkan instance extensions required from a client.
Definition: comp_vk_glue.c:19
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:2196
Base class for a Vulkan client compositor.
Definition: xrt_compositor.h:1997
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.