Libovr 1.43 Reference Guide

ovrPerfStatsPerCompositorFrame Struct Reference

Contains the performance stats for a given SDK compositor frame.

Data Fields

int
Vsync Frame Index - increments with each HMD vertical synchronization signal (i.e.
int
Application stats.
int
If the app fails to call ovr_SubmitFrame on time, then expect this value to increment with each missed frame.
float
Motion-to-photon latency for the application This value is calculated by either using the SensorSampleTime provided for the ovrLayerEyeFov or if that is not available, then the call to ovr_GetTrackingState which has latencyMarker set to ovrTrue.
float
Amount of queue-ahead in seconds provided to the app based on performance and overlap of CPU and GPU utilization.
float
Amount of time in seconds spent on the CPU by the app's render-thread that calls ovr_SubmitFram.
float
Amount of time in seconds spent on the GPU by the app.
int
SDK Compositor stats.
int
Increments each time the SDK compositor fails to complete in time This is not tied to the app's performance, but failure to complete can be related to other factors such as OS capabilities, overall available hardware cycles to execute the compositor in time and other factors outside of the app's control.
float
Motion-to-photon latency of the SDK compositor in seconds.
float
The amount of time in seconds spent on the CPU by the SDK compositor.
float
The amount of time in seconds spent on the GPU by the SDK compositor.
float
The amount of time in seconds spent from the point the CPU kicks off the compositor to the point in time the compositor completes the distortion & timewarp on the GPU.
float
The amount of time in seconds left after the compositor is done on the GPU to the associated V-Sync time.
ovrBool
Async Spacewarp stats (ASW)
int
Increments each time ASW it activated where the app was forced in and out of half-rate rendering.
int
Accumulates the number of frames presented by the compositor which had extrapolated ASW frames presented.
int
Accumulates the number of frames that the compositor tried to present when ASW is active but failed.

Detailed Description

All of the 'int' typed fields can be reset via the ovr_ResetPerfStats call.

Field Documentation

int ovrPerfStatsPerCompositorFrame::HmdVsyncIndex ( )
Vsync Frame Index - increments with each HMD vertical synchronization signal (i.e.
vsync or refresh rate) If the compositor drops a frame, expect this value to increment more than 1 at a time.
int ovrPerfStatsPerCompositorFrame::AppFrameIndex ( )
Application stats.
Index that increments with each successive ovr_SubmitFrame call
int ovrPerfStatsPerCompositorFrame::AppDroppedFrameCount ( )
If the app fails to call ovr_SubmitFrame on time, then expect this value to increment with each missed frame.
float ovrPerfStatsPerCompositorFrame::AppMotionToPhotonLatency ( )
Motion-to-photon latency for the application This value is calculated by either using the SensorSampleTime provided for the ovrLayerEyeFov or if that is not available, then the call to ovr_GetTrackingState which has latencyMarker set to ovrTrue.
float ovrPerfStatsPerCompositorFrame::AppQueueAheadTime ( )
Amount of queue-ahead in seconds provided to the app based on performance and overlap of CPU and GPU utilization.
A value of 0.0 would mean the CPU & GPU workload is being completed in 1 frame's worth of time, while 11 ms (on the CV1) of queue ahead would indicate that the app's CPU workload for the next frame is overlapping the GPU workload for the current frame.
float ovrPerfStatsPerCompositorFrame::AppCpuElapsedTime ( )
Amount of time in seconds spent on the CPU by the app's render-thread that calls ovr_SubmitFram.
Measured as elapsed time between from when app regains control from ovr_SubmitFrame to the next time the app calls ovr_SubmitFrame.
float ovrPerfStatsPerCompositorFrame::AppGpuElapsedTime ( )
Amount of time in seconds spent on the GPU by the app.
Measured as elapsed time between each ovr_SubmitFrame call using GPU timing queries.
int ovrPerfStatsPerCompositorFrame::CompositorFrameIndex ( )
SDK Compositor stats.
Index that increments each time the SDK compositor completes a distortion and timewarp pass Since the compositor operates asynchronously, even if the app calls ovr_SubmitFrame too late, the compositor will kick off for each vsync.
int ovrPerfStatsPerCompositorFrame::CompositorDroppedFrameCount ( )
Increments each time the SDK compositor fails to complete in time This is not tied to the app's performance, but failure to complete can be related to other factors such as OS capabilities, overall available hardware cycles to execute the compositor in time and other factors outside of the app's control.
float ovrPerfStatsPerCompositorFrame::CompositorLatency ( )
Motion-to-photon latency of the SDK compositor in seconds.
This is the latency of timewarp which corrects the higher app latency as well as dropped app frames.
float ovrPerfStatsPerCompositorFrame::CompositorCpuElapsedTime ( )
The amount of time in seconds spent on the CPU by the SDK compositor.
Unless the VR app is utilizing all of the CPU cores at their peak performance, there is a good chance the compositor CPU times will not affect the app's CPU performance in a major way.
float ovrPerfStatsPerCompositorFrame::CompositorGpuElapsedTime ( )
The amount of time in seconds spent on the GPU by the SDK compositor.
Any time spent on the compositor will eat away from the available GPU time for the app.
float ovrPerfStatsPerCompositorFrame::CompositorCpuStartToGpuEndElapsedTime ( )
The amount of time in seconds spent from the point the CPU kicks off the compositor to the point in time the compositor completes the distortion & timewarp on the GPU.
In the event the GPU time is not available, expect this value to be -1.0f.
float ovrPerfStatsPerCompositorFrame::CompositorGpuEndToVsyncElapsedTime ( )
The amount of time in seconds left after the compositor is done on the GPU to the associated V-Sync time.
In the event the GPU time is not available, expect this value to be -1.0f.
ovrBool ovrPerfStatsPerCompositorFrame::AswIsActive ( )
Async Spacewarp stats (ASW)
Will be true if ASW is active for the given frame such that the application is being forced into half the frame-rate while the compositor continues to run at full frame-rate.
int ovrPerfStatsPerCompositorFrame::AswActivatedToggleCount ( )
Increments each time ASW it activated where the app was forced in and out of half-rate rendering.
int ovrPerfStatsPerCompositorFrame::AswPresentedFrameCount ( )
Accumulates the number of frames presented by the compositor which had extrapolated ASW frames presented.
int ovrPerfStatsPerCompositorFrame::AswFailedFrameCount ( )
Accumulates the number of frames that the compositor tried to present when ASW is active but failed.
The documentation for this struct was generated from the following file: Include/OVR_CAPI.h