Monado OpenXR Runtime
comp_render_view_data Struct Reference

The input data needed for a single view, shared between both GFX and CS paths. More...

#include <util/comp_render.h>

Collaboration diagram for comp_render_view_data:

Data Fields

struct xrt_pose world_pose
 New world pose of this view. More...
 
struct xrt_pose eye_pose
 New eye pose of this view. More...
 
struct xrt_fov fov
 New fov of this view, used for the layer scratch image. More...
 
struct xrt_normalized_rect pre_transform
 Go from UV to tanangle for both the target and layer image since they share the same fov, this needs to match fov. More...
 
struct {
   VkImage   image
 The layer image for this view (aka scratch image), used for barrier operations. More...
 
   struct render_viewport_data   viewport_data
 Pre-view layer target viewport_data (where in the image we should render the view). More...
 
   struct {
      struct render_gfx_target_resources *   rtr
 Per-view layer target resources. More...
 
   }   gfx
 
   struct {
      VkImageView   storage_view
 View into layer image (aka scratch image), for used as a storage tagert of the CS (write) path. More...
 
   }   cs
 
squash
 
struct {
   struct xrt_normalized_rect   norm_rect
 When sampling from the layer image (aka scratch image), how should we transform it to get to the pixels correctly. More...
 
   VkImageView   sample_view
 View into layer image (aka scratch image) when sampling the image, used for both GFX (read) and CS (read) paths. More...
 
squash_as_src
 
struct {
   struct render_viewport_data   viewport_data
 
   struct {
      struct xrt_matrix_2x2   vertex_rot
 Distortion target vertex rotation information. More...
 
   }   gfx
 
target
 

Detailed Description

The input data needed for a single view, shared between both GFX and CS paths.

To fully render a single view two "rendering" might be needed, the first being the layer squashing, and the second is the distortion step. The target for the layer squashing is referred to as "layer" or "scratch" and prefixed with layer if needs be. The other final step is referred to as "distortion target" or just "target", and is prefixed with target.

Field Documentation

◆ eye_pose

struct xrt_pose comp_render_view_data::eye_pose

New eye pose of this view.

Referenced by comp_render_cs_layers().

◆ fov

struct xrt_fov comp_render_view_data::fov

New fov of this view, used for the layer scratch image.

Needs to match distortion parameters if distortion is used.

Referenced by crg_distortion_after_squash().

◆ image

VkImage comp_render_view_data::image

The layer image for this view (aka scratch image), used for barrier operations.

Referenced by comp_render_cs_layers().

◆ norm_rect

struct xrt_normalized_rect comp_render_view_data::norm_rect

When sampling from the layer image (aka scratch image), how should we transform it to get to the pixels correctly.

Ignored when doing a fast path and reading directly from the app projection layer.

Referenced by crg_distortion_after_squash().

◆ pre_transform

struct xrt_normalized_rect comp_render_view_data::pre_transform

Go from UV to tanangle for both the target and layer image since they share the same fov, this needs to match fov.

Referenced by comp_render_cs_layers().

◆ rtr

struct render_gfx_target_resources* comp_render_view_data::rtr

Per-view layer target resources.

◆ sample_view

VkImageView comp_render_view_data::sample_view

View into layer image (aka scratch image) when sampling the image, used for both GFX (read) and CS (read) paths.

Ignored when doing a fast path and reading directly from the app projection layer.

Referenced by crg_distortion_after_squash().

◆ storage_view

VkImageView comp_render_view_data::storage_view

View into layer image (aka scratch image), for used as a storage tagert of the CS (write) path.

Referenced by comp_render_cs_layers().

◆ vertex_rot

struct xrt_matrix_2x2 comp_render_view_data::vertex_rot

Distortion target vertex rotation information.

◆ viewport_data

struct render_viewport_data comp_render_view_data::viewport_data

Pre-view layer target viewport_data (where in the image we should render the view).

Referenced by comp_render_cs_layers().

◆ world_pose

struct xrt_pose comp_render_view_data::world_pose

New world pose of this view.

Referenced by comp_render_cs_layers(), and crg_distortion_after_squash().


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