···5 * @brief Independent swapchain implementation.
6 * @author Jakob Bornecrantz <jakob@collabora.com>
7 * @author Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
8- * @ingroup comp_main
9 */
1011#pragma once
···2324/*!
25 * A garbage collector that collects swapchains to be safely destroyed.
0026 */
27struct comp_swapchain_gc
28{
···33/*!
34 * A single swapchain image, holds the needed state for tracking image usage.
35 *
36- * @ingroup comp_main
37 * @see comp_swapchain
38 */
39struct comp_swapchain_image
···60 * sure that compositor lives for as long as the swapchain does and that all
61 * swapchains are destroyed before the compositor is destroyed.
62 *
63- * @ingroup comp_main
64 * @implements xrt_swapchain_native
65 * @see comp_compositor
66 */
···91/*!
92 * Convenience function to convert a xrt_swapchain to a comp_swapchain.
93 *
094 * @private @memberof comp_swapchain
95 */
96static inline struct comp_swapchain *
···110 * Do garbage collection, destroying any resources that has been scheduled for
111 * destruction from other threads.
112 *
113- * @public @memberof comp_compositor
114 */
115void
116comp_swapchain_garbage_collect(struct comp_swapchain_gc *cscgc);
···118/*!
119 * A compositor function that is implemented in the swapchain code.
120 *
121- * @public @memberof comp_compositor
122 */
123xrt_result_t
124comp_swapchain_create(struct vk_bundle *vk,
···129/*!
130 * A compositor function that is implemented in the swapchain code.
131 *
132- * @public @memberof comp_compositor
133 */
134xrt_result_t
135comp_swapchain_import(struct vk_bundle *vk,
···144 * does the actual destruction and is called from @ref
145 * comp_swapchain_garbage_collect.
146 *
147- * @private @memberof comp_swapchain
148 */
149void
150comp_swapchain_really_destroy(struct comp_swapchain *sc);
···5 * @brief Independent swapchain implementation.
6 * @author Jakob Bornecrantz <jakob@collabora.com>
7 * @author Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
8+ * @ingroup comp_util
9 */
1011#pragma once
···2324/*!
25 * A garbage collector that collects swapchains to be safely destroyed.
26+ *
27+ * @ingroup comp_util
28 */
29struct comp_swapchain_gc
30{
···35/*!
36 * A single swapchain image, holds the needed state for tracking image usage.
37 *
38+ * @ingroup comp_util
39 * @see comp_swapchain
40 */
41struct comp_swapchain_image
···62 * sure that compositor lives for as long as the swapchain does and that all
63 * swapchains are destroyed before the compositor is destroyed.
64 *
65+ * @ingroup comp_util
66 * @implements xrt_swapchain_native
67 * @see comp_compositor
68 */
···93/*!
94 * Convenience function to convert a xrt_swapchain to a comp_swapchain.
95 *
96+ * @ingroup comp_util
97 * @private @memberof comp_swapchain
98 */
99static inline struct comp_swapchain *
···113 * Do garbage collection, destroying any resources that has been scheduled for
114 * destruction from other threads.
115 *
116+ * @ingroup comp_util
117 */
118void
119comp_swapchain_garbage_collect(struct comp_swapchain_gc *cscgc);
···121/*!
122 * A compositor function that is implemented in the swapchain code.
123 *
124+ * @ingroup comp_util
125 */
126xrt_result_t
127comp_swapchain_create(struct vk_bundle *vk,
···132/*!
133 * A compositor function that is implemented in the swapchain code.
134 *
135+ * @ingroup comp_util
136 */
137xrt_result_t
138comp_swapchain_import(struct vk_bundle *vk,
···147 * does the actual destruction and is called from @ref
148 * comp_swapchain_garbage_collect.
149 *
150+ * @ingroup comp_util
151 */
152void
153comp_swapchain_really_destroy(struct comp_swapchain *sc);
···4 * @file
5 * @brief Independent @ref xrt_compositor_fence implementation.
6 * @author Jakob Bornecrantz <jakob@collabora.com>
7- * @ingroup comp_main
8 */
910#pragma once
···25 * The vk_bundle is owned by the compositor, its the state trackers job to make
26 * sure that compositor lives for as long as the fence does and that all fences
27 * are destroyed before the compositor is destroyed.
0028 */
29xrt_result_t
30comp_fence_import(struct vk_bundle *vk, xrt_graphics_sync_handle_t handle, struct xrt_compositor_fence **out_xcf);
···4 * @file
5 * @brief Independent @ref xrt_compositor_fence implementation.
6 * @author Jakob Bornecrantz <jakob@collabora.com>
7+ * @ingroup comp_util
8 */
910#pragma once
···25 * The vk_bundle is owned by the compositor, its the state trackers job to make
26 * sure that compositor lives for as long as the fence does and that all fences
27 * are destroyed before the compositor is destroyed.
28+ *
29+ * @ingroup comp_util
30 */
31xrt_result_t
32comp_fence_import(struct vk_bundle *vk, xrt_graphics_sync_handle_t handle, struct xrt_compositor_fence **out_xcf);