15#include "xrt/xrt_config_build.h"
51#define COMP_INSTANCE_EXTENSIONS_COMMON \
52 VK_EXT_DEBUG_REPORT_EXTENSION_NAME, \
53 VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME, \
54 VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, \
55 VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME, \
56 VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, \
57 VK_KHR_SURFACE_EXTENSION_NAME
73 uint64_t predicted_display_time_ns;
74 uint64_t desired_present_time_ns;
75 uint64_t present_slop_ns;
122 VkExtent2D view_extents;
189#define CVK_ERROR(C, FUNC, MSG, RET) COMP_ERROR(C, FUNC ": %s\n\t" MSG, vk_result_string(RET));
196#define COMP_SPEW(c, ...) U_LOG_IFL_T(c->settings.log_level, __VA_ARGS__);
203#define COMP_DEBUG(c, ...) U_LOG_IFL_D(c->settings.log_level, __VA_ARGS__);
210#define COMP_INFO(c, ...) U_LOG_IFL_I(c->settings.log_level, __VA_ARGS__);
217#define COMP_WARN(c, ...) U_LOG_IFL_W(c->settings.log_level, __VA_ARGS__);
224#define COMP_ERROR(c, ...) U_LOG_IFL_E(c->settings.log_level, __VA_ARGS__);
231#define COMP_PRINT_MODE(c, ...) \
232 if (c->settings.print_modes) { \
233 U_LOG_I(__VA_ARGS__); \
Helper implementation for native compositors.
Higher level interface for scratch images.
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.
Scratch images that can be used for staging buffers.
Definition: comp_high_level_scratch.h:29
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:91
bool deferred_surface
If true, part of the compositor startup will be delayed until a session is started.
Definition: comp_compositor.h:163
struct comp_settings settings
The settings.
Definition: comp_compositor.h:95
struct xrt_device * xdev
The device we are displaying to.
Definition: comp_compositor.h:98
struct comp_window_peek * peek
On screen window to display the content of the HMD.
Definition: comp_compositor.h:128
struct comp_compositor::@64 app_profiling
Data exclusive to the begin_frame/end_frame for computing an estimate of the app's needs.
const struct comp_target_factory * target_factory
The selected target factory that we create our target from.
Definition: comp_compositor.h:107
bool atw_off
Temporarily disable ATW.
Definition: comp_compositor.h:154
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:125
struct comp_renderer * r
Renderer helper.
Definition: comp_compositor.h:113
struct render_shaders shaders
Vulkan shaders that the compositor (renderer) uses.
Definition: comp_compositor.h:101
int64_t frame_interval_ns
Duration of a frame at current refresh rate.
Definition: comp_compositor.h:116
bool disable_fast_path
Should the fast path be disabled.
Definition: comp_compositor.h:157
int64_t last_frame_time_ns
Timestamp of last-rendered (immersive) frame.
Definition: comp_compositor.h:119
struct render_resources nr
Vulkan resources that the compositor (renderer) uses.
Definition: comp_compositor.h:104
struct comp_target * target
The target we are displaying to.
Definition: comp_compositor.h:110
Tracking frame state.
Definition: comp_compositor.h:71
Holds associated vulkan objects and state to render with a distortion.
Definition: comp_renderer.c:101
Settings for the compositor.
Definition: comp_settings.h:48
A factory of targets.
Definition: comp_target.h:682
A compositor target: where the compositor renders to.
Definition: comp_target.h:133
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:997
A single HMD or input device.
Definition: xrt_device.h:281
Basic logging functionality.
Special code for managing a variable tracked swapchain.
Slightly higher level thread safe helpers.
Header defining an XRT graphics provider.