Monado OpenXR Runtime
|
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 |
struct { ... } pacing_app::app |
App statistics.
int64_t pacing_app::cpu_time_ns |
App time between wait returning and begin being called.
int64_t pacing_app::draw_time_ns |
Time between begin and frame data being delivered.
int64_t pacing_app::extra_ns |
The extra time needed by the thing driving this helper.
int64_t pacing_app::gpu_time_ns |
Time between the frame data being delivered and GPU completing.
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.
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.
int64_t pacing_app::predicted_display_period_ns |
The last display period the hardware is running at.
int64_t pacing_app::predicted_display_time_ns |
The last display time that the thing driving this helper got.
int64_t pacing_app::session_id |
Id for this session.