Monado OpenXR Runtime
render_compute Struct Reference

A compute rendering is used to create command buffers needed to do one frame of compositor rendering using compute shaders, it holds onto resources used by the command buffer. More...

#include <render/render_interface.h>

Collaboration diagram for render_compute:

Public Member Functions

bool render_compute_init (struct render_compute *crc, struct render_resources *r)
 Init struct and create resources needed for compute rendering. More...
 
void render_compute_close (struct render_compute *crc)
 Frees all resources held by the compute rendering, does not free the struct itself. More...
 
bool render_compute_begin (struct render_compute *crc)
 Begin the compute command buffer building, takes the vk_bundle's pool lock and leaves it locked. More...
 
bool render_compute_end (struct render_compute *crc)
 Frees any unneeded resources and ends the command buffer so it can be used, also unlocks the vk_bundle's pool lock that was taken by begin. More...
 
void render_compute_layers (struct render_compute *crc, VkDescriptorSet descriptor_set, VkBuffer ubo, VkSampler src_samplers[((16) *XRT_MAX_VIEWS)], VkImageView src_image_views[((16) *XRT_MAX_VIEWS)], uint32_t num_srcs, VkImageView target_image_view, const struct render_viewport_data *view, bool timewarp)
 Updates the given descriptor_set and dispatches the layer shader. More...
 
void render_compute_projection_timewarp (struct render_compute *crc, VkSampler src_samplers[XRT_MAX_VIEWS], VkImageView src_image_views[XRT_MAX_VIEWS], const struct xrt_normalized_rect src_rects[XRT_MAX_VIEWS], const struct xrt_pose src_poses[XRT_MAX_VIEWS], const struct xrt_fov src_fovs[XRT_MAX_VIEWS], const struct xrt_pose new_poses[XRT_MAX_VIEWS], VkImage target_image, VkImageView target_image_view, const struct render_viewport_data views[XRT_MAX_VIEWS])
 
void render_compute_projection (struct render_compute *crc, VkSampler src_samplers[XRT_MAX_VIEWS], VkImageView src_image_views[XRT_MAX_VIEWS], const struct xrt_normalized_rect src_rects[XRT_MAX_VIEWS], VkImage target_image, VkImageView target_image_view, const struct render_viewport_data views[XRT_MAX_VIEWS])
 
void render_compute_clear (struct render_compute *crc, VkImage target_image, VkImageView target_image_view, const struct render_viewport_data views[XRT_MAX_VIEWS])
 

Data Fields

struct render_resourcesr
 Shared resources. More...
 
VkDescriptorSet layer_descriptor_sets [(XRT_MAX_VIEWS)]
 Layer descriptor set. More...
 
VkDescriptorSet shared_descriptor_set
 Shared descriptor set, used for the clear and distortion shaders. More...
 

Detailed Description

A compute rendering is used to create command buffers needed to do one frame of compositor rendering using compute shaders, it holds onto resources used by the command buffer.

Field Documentation

◆ layer_descriptor_sets

VkDescriptorSet render_compute::layer_descriptor_sets[(XRT_MAX_VIEWS)]

Layer descriptor set.

Referenced by render_compute_close().

◆ r

◆ shared_descriptor_set

VkDescriptorSet render_compute::shared_descriptor_set

Shared descriptor set, used for the clear and distortion shaders.

It is used in the functions render_compute_projection_timewarp, render_compute_projection, and render_compute_clear.

Referenced by render_compute_close().


The documentation for this struct was generated from the following file: