98 const struct xrt_pose world_pose[XRT_MAX_VIEWS],
99 const struct xrt_pose eye_pose[XRT_MAX_VIEWS],
100 const struct xrt_fov fov[XRT_MAX_VIEWS],
101 uint32_t layer_count);
125 uint32_t layer_count,
126 const struct xrt_pose world_poses[XRT_MAX_VIEWS],
127 const struct xrt_pose eye_poses[XRT_MAX_VIEWS],
128 const struct xrt_fov fovs[XRT_MAX_VIEWS],
143 target_viewport_datas,
175 const struct xrt_pose world_pose[XRT_MAX_VIEWS],
176 const struct xrt_pose eye_pose[XRT_MAX_VIEWS],
177 const struct xrt_fov fov[XRT_MAX_VIEWS],
178 uint32_t layer_count);
189 VkImage target_image,
190 VkImageView target_storage_view,
202 uint32_t layer_count,
203 const struct xrt_pose world_poses[XRT_MAX_VIEWS],
204 const struct xrt_pose eye_poses[XRT_MAX_VIEWS],
205 const struct xrt_fov fovs[XRT_MAX_VIEWS],
206 VkImage target_image,
207 VkImageView target_storage_view,
221 target_viewport_datas);
Higher level interface for scratch images.
Compositor render implementation.
void comp_render_cs_dispatch(struct render_compute *render, const struct comp_layer *layers, const uint32_t layer_count, const struct comp_render_dispatch_data *d)
Write commands to render to do a full composition with distortion.
Definition: comp_render_cs.c:717
void comp_render_gfx_dispatch(struct render_gfx *render, const struct comp_layer *layers, const uint32_t layer_count, const struct comp_render_dispatch_data *d)
Writes the needed commands to the render_gfx to do a full composition with distortion.
Definition: comp_render_gfx.c:884
bool render_gfx_end(struct render_gfx *render)
Frees any unneeded resources and ends the command buffer so it can be used, also unlocks the vk_bundl...
Definition: render_gfx.c:1007
bool render_compute_end(struct render_compute *render)
Frees any unneeded resources and ends the command buffer so it can be used, also unlocks the vk_bundl...
Definition: render_compute.c:356
bool render_gfx_begin(struct render_gfx *render)
Begins the rendering, takes the vk_bundle's pool lock and leaves it locked.
Definition: render_gfx.c:972
bool render_compute_begin(struct render_compute *render)
Begin the compute command buffer building, takes the vk_bundle's pool lock and leaves it locked.
Definition: render_compute.c:322
The NEW compositor rendering code header.
Encapsulates all the needed state to run the layer squasher and distortion passes,...
Definition: comp_high_level_render.h:39
static void chl_frame_state_cs_default_pipeline(struct chl_frame_state *frame_state, struct render_compute *render, const struct comp_layer *layers, uint32_t layer_count, const struct xrt_pose world_poses[XRT_MAX_VIEWS], const struct xrt_pose eye_poses[XRT_MAX_VIEWS], const struct xrt_fov fovs[XRT_MAX_VIEWS], VkImage target_image, VkImageView target_storage_view, const struct render_viewport_data target_viewport_datas[XRT_MAX_VIEWS])
A single do all function, runs the default compute pipeline.
Definition: comp_high_level_render.h:199
void chl_frame_state_gfx_set_views(struct chl_frame_state *frame_state, const struct xrt_pose world_pose[XRT_MAX_VIEWS], const struct xrt_pose eye_pose[XRT_MAX_VIEWS], const struct xrt_fov fov[XRT_MAX_VIEWS], uint32_t layer_count)
Sets all the needed state to run the layer squasher to the scratch images, this is the graphics versi...
Definition: comp_high_level_render.c:67
void chl_frame_state_cs_set_views(struct chl_frame_state *frame_state, const struct xrt_pose world_pose[XRT_MAX_VIEWS], const struct xrt_pose eye_pose[XRT_MAX_VIEWS], const struct xrt_fov fov[XRT_MAX_VIEWS], uint32_t layer_count)
Sets all the needed state to run the layer squasher to the scratch images, this is the compute versio...
Definition: comp_high_level_render.c:149
void chl_frame_state_init(struct chl_frame_state *frame_state, struct render_resources *rr, uint32_t view_count, bool do_timewarp, bool fast_path, struct chl_scratch *scratch)
Create the Vulkan resources using the given render_resources and the vk_bundle it refers to.
Definition: comp_high_level_render.c:24
void chl_frame_state_gfx_set_target(struct chl_frame_state *frame_state, struct render_gfx_target_resources *target_rtr, const struct render_viewport_data target_viewport_datas[XRT_MAX_VIEWS], const struct xrt_matrix_2x2 vertex_rots[XRT_MAX_VIEWS])
Adds the needed information to also perform a distortion step, reuses some information from the _set_...
Definition: comp_high_level_render.c:112
void chl_frame_state_fini(struct chl_frame_state *state)
Frees all resources that this frame state tracks and manages the scratch images state.
Definition: comp_high_level_render.c:48
static void chl_frame_state_gfx_default_pipeline(struct chl_frame_state *frame_state, struct render_gfx *render, const struct comp_layer *layers, uint32_t layer_count, const struct xrt_pose world_poses[XRT_MAX_VIEWS], const struct xrt_pose eye_poses[XRT_MAX_VIEWS], const struct xrt_fov fovs[XRT_MAX_VIEWS], struct render_gfx_target_resources *target_rtr, const struct render_viewport_data target_viewport_datas[XRT_MAX_VIEWS], const struct xrt_matrix_2x2 vertex_rots[XRT_MAX_VIEWS])
A single do all function, runs the default graphics pipeline.
Definition: comp_high_level_render.h:122
void chl_frame_state_cs_set_target(struct chl_frame_state *frame_state, VkImage target_image, VkImageView target_storage_view, const struct render_viewport_data views[XRT_MAX_VIEWS])
Adds the needed information to also perform a distortion step, reuses some information from the _set_...
Definition: comp_high_level_render.c:193
Used to track the index of images gotten for the images, and if it has been used.
Definition: comp_high_level_scratch.h:155
Scratch images that can be used for staging buffers.
Definition: comp_high_level_scratch.h:29
uint32_t view_count
Number of views that has been ensured and have Vulkan resources, all comp_scratch_single_images are a...
Definition: comp_high_level_scratch.h:46
A single layer in a comp_layer_accum.
Definition: comp_layer_accum.h:36
struct xrt_layer_data data
All basic (trivially-serializable) data associated with a layer.
Definition: comp_layer_accum.h:47
The input data needed for a complete layer squashing distortion rendering to a target.
Definition: comp_render.h:164
The semi-low level resources and operations required to squash layers and/or apply distortion for a s...
Definition: render_interface.h:1166
Each rendering (render_gfx) render to one or more targets (render_gfx_target_resources),...
Definition: render_interface.h:785
The low-level resources and operations to perform layer squashing and/or mesh distortion for a single...
Definition: render_interface.h:848
Holds all pools and static resources for rendering.
Definition: render_interface.h:352
The pure data information about a view that the renderer is rendering to.
Definition: render_interface.h:687
Describes a projection matrix fov.
Definition: xrt_defines.h:483
A tightly packed 2x2 matrix of floats.
Definition: xrt_defines.h:510
A pose composed of a position and orientation.
Definition: xrt_defines.h:463