Monado OpenXR Runtime
pacing_app Struct Reference
Collaboration diagram for pacing_app:

Data Fields

struct u_pacing_app base
 
int64_t session_id
 Id for this session. More...
 
struct u_pa_frame frames [(128)]
 
uint32_t current_frame
 
uint32_t next_frame
 
int64_t frame_counter
 
struct u_var_draggable_f32 min_app_time_ms
 Minimum calculated frame (total app time). More...
 
struct u_var_draggable_f32 min_margin_ms
 Minimum margin to use for calculating the app pacing. More...
 
struct {
   int64_t   cpu_time_ns
 App time between wait returning and begin being called. More...
 
   int64_t   draw_time_ns
 Time between begin and frame data being delivered. More...
 
   int64_t   gpu_time_ns
 Time between the frame data being delivered and GPU completing. More...
 
app
 App statistics. More...
 
struct {
   int64_t   predicted_display_time_ns
 The last display time that the thing driving this helper got. More...
 
   int64_t   predicted_display_period_ns
 The last display period the hardware is running at. More...
 
   int64_t   extra_ns
 The extra time needed by the thing driving this helper. More...
 
last_input
 
int64_t last_returned_ns
 

Field Documentation

◆ 

struct { ... } pacing_app::app

App statistics.

◆ cpu_time_ns

int64_t pacing_app::cpu_time_ns

App time between wait returning and begin being called.

◆ draw_time_ns

int64_t pacing_app::draw_time_ns

Time between begin and frame data being delivered.

◆ extra_ns

int64_t pacing_app::extra_ns

The extra time needed by the thing driving this helper.

◆ gpu_time_ns

int64_t pacing_app::gpu_time_ns

Time between the frame data being delivered and GPU completing.

◆ min_app_time_ms

struct u_var_draggable_f32 pacing_app::min_app_time_ms

Minimum calculated frame (total app time).

Min app time lets you add of time between the time where the compositor picks the frame up and when the application is woken up. Essentially a minimum amount of latency between the app and the compositor (and by extension the display time).

For applications that has varied frame times this lets the user tweak the values, trading latency for frame stability. Avoiding dropped frames, or jittery frame delivery.

This does not effect frame cadence, you can essentially have 3x the frame periods time as latench but still run at frame cadence.

◆ min_margin_ms

struct u_var_draggable_f32 pacing_app::min_margin_ms

Minimum margin to use for calculating the app pacing.

Currently this is the actual margin time used, but in the future we might calculate a margin time so this is called minimum to future proof.

◆ predicted_display_period_ns

int64_t pacing_app::predicted_display_period_ns

The last display period the hardware is running at.

◆ predicted_display_time_ns

int64_t pacing_app::predicted_display_time_ns

The last display time that the thing driving this helper got.

◆ session_id

int64_t pacing_app::session_id

Id for this session.


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