14#include "xrt/xrt_config_build.h"
49#define COMP_INSTANCE_EXTENSIONS_COMMON \
50 VK_EXT_DEBUG_REPORT_EXTENSION_NAME, \
51 VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME, \
52 VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, \
53 VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME, \
54 VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, \
55 VK_KHR_SURFACE_EXTENSION_NAME
71 uint64_t predicted_display_time_ns;
72 uint64_t desired_present_time_ns;
73 uint64_t present_slop_ns;
117 VkExtent2D view_extents;
187#define CVK_ERROR(C, FUNC, MSG, RET) COMP_ERROR(C, FUNC ": %s\n\t" MSG, vk_result_string(RET));
194#define COMP_SPEW(c, ...) U_LOG_IFL_T(c->settings.log_level, __VA_ARGS__);
201#define COMP_DEBUG(c, ...) U_LOG_IFL_D(c->settings.log_level, __VA_ARGS__);
208#define COMP_INFO(c, ...) U_LOG_IFL_I(c->settings.log_level, __VA_ARGS__);
215#define COMP_WARN(c, ...) U_LOG_IFL_W(c->settings.log_level, __VA_ARGS__);
222#define COMP_ERROR(c, ...) U_LOG_IFL_E(c->settings.log_level, __VA_ARGS__);
229#define COMP_PRINT_MODE(c, ...) \
230 if (c->settings.print_modes) { \
231 U_LOG_I(__VA_ARGS__); \
Helper implementation for native compositors.
Compositor rendering code header.
Helper implementation for native compositors.
Settings struct for compositor header.
Independent swapchain implementation.
Independent xrt_compositor_fence implementation.
Abstracted compositor rendering target.
Compositor window header.
The NEW compositor rendering code header.
A simple compositor base that handles a lot of things for you.
Definition: comp_base.h:69
struct xrt_compositor_native base
Base native compositor.
Definition: comp_base.h:71
Main compositor struct tying everything in the compositor together.
Definition: comp_compositor.h:89
bool deferred_surface
If true, part of the compositor startup will be delayed until a session is started.
Definition: comp_compositor.h:161
struct comp_settings settings
The settings.
Definition: comp_compositor.h:93
struct xrt_device * xdev
The device we are displaying to.
Definition: comp_compositor.h:96
struct comp_window_peek * peek
On screen window to display the content of the HMD.
Definition: comp_compositor.h:123
const struct comp_target_factory * target_factory
The selected target factory that we create our target from.
Definition: comp_compositor.h:105
bool atw_off
Temporarily disable ATW.
Definition: comp_compositor.h:152
bool mirroring_to_debug_gui
Are we mirroring any of the views to the debug gui? If so, turn off the fast path.
Definition: comp_compositor.h:120
struct comp_renderer * r
Renderer helper.
Definition: comp_compositor.h:111
struct render_shaders shaders
Vulkan shaders that the compositor (renderer) uses.
Definition: comp_compositor.h:99
bool disable_fast_path
Should the fast path be disabled.
Definition: comp_compositor.h:155
int64_t last_frame_time_ns
Timestamp of last-rendered (immersive) frame.
Definition: comp_compositor.h:114
struct render_resources nr
Vulkan resources that the compositor (renderer) uses.
Definition: comp_compositor.h:102
struct comp_compositor::@62 app_profiling
Data exclusive to the begin_frame/end_frame for computing an estimate of the app's needs.
struct comp_target * target
The target we are displaying to.
Definition: comp_compositor.h:108
Tracking frame state.
Definition: comp_compositor.h:69
Holds associated vulkan objects and state to render with a distortion.
Definition: comp_renderer.c:96
Holds scratch images for a single view, designed to work with render code.
Definition: comp_scratch.h:68
Settings for the compositor.
Definition: comp_settings.h:47
A factory of targets.
Definition: comp_target.h:580
A compositor target: where the compositor renders to.
Definition: comp_target.h:132
Definition: comp_window_peek.c:30
Definition: u_pacing_compositor.c:54
Holds all pools and static resources for rendering.
Definition: render_interface.h:352
Holds all shaders.
Definition: render_interface.h:136
Allows to debug image that is in GPU memory.
Definition: u_native_images_debug.h:197
Common compositor client interface/base.
Definition: xrt_compositor.h:988
A single HMD or input device.
Definition: xrt_device.h:241
Basic logging functionality.
Special code for managing a variable tracked swapchain.
Slightly higher level thread safe helpers.
Header defining an XRT graphics provider.