Package org.lwjgl.ovr

Class OVRPerfStatsPerCompositorFrame

    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • HMDVSYNCINDEX, APPFRAMEINDEX, APPDROPPEDFRAMECOUNT, APPMOTIONTOPHOTONLATENCY, APPQUEUEAHEADTIME, APPCPUELAPSEDTIME, APPGPUELAPSEDTIME, COMPOSITORFRAMEINDEX, COMPOSITORDROPPEDFRAMECOUNT, COMPOSITORLATENCY, COMPOSITORCPUELAPSEDTIME, COMPOSITORGPUELAPSEDTIME, COMPOSITORCPUSTARTTOGPUENDELAPSEDTIME, COMPOSITORGPUENDTOVSYNCELAPSEDTIME, ASWISACTIVE, ASWACTIVATEDTOGGLECOUNT, ASWPRESENTEDFRAMECOUNT, ASWFAILEDFRAMECOUNT

        The struct member offsets.
    • Constructor Detail

      • OVRPerfStatsPerCompositorFrame

        public OVRPerfStatsPerCompositorFrame​(java.nio.ByteBuffer container)
        Creates a OVRPerfStatsPerCompositorFrame instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Specified by:
        sizeof in class org.lwjgl.system.Struct
      • HmdVsyncIndex

        public int 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.

      • AppFrameIndex

        public int AppFrameIndex()
        index that increments with each successive SubmitFrame call
      • AppDroppedFrameCount

        public int AppDroppedFrameCount()
        if the app fails to call SubmitFrame on time, then expect this value to increment with each missed frame
      • AppMotionToPhotonLatency

        public float 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 GetTrackingState which has latencyMarker set to True.

      • AppQueueAheadTime

        public float 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 app's GPU workload for the current frame.

      • AppCpuElapsedTime

        public float AppCpuElapsedTime()
        amount of time in seconds spent on the CPU by the app's render-thread that calls SubmitFrame.

        Measured as elapsed time between from when app regains control from SubmitFrame to the next time the app calls SubmitFrame.

      • AppGpuElapsedTime

        public float AppGpuElapsedTime()
        amount of time in seconds spent on the GPU by the app.

        Measured as elapsed time between each SubmitFrame call using GPU timing queries.

      • CompositorFrameIndex

        public int CompositorFrameIndex()
        index that increments each time the SDK compositor completes a distortion and timewarp pass.

        Since the compositor operates asynchronously, even if the app calls SubmitFrame too late, the compositor will kick off for each vsync.

      • CompositorDroppedFrameCount

        public int 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.

      • CompositorLatency

        public float 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.

      • CompositorCpuElapsedTime

        public float 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.

      • CompositorGpuElapsedTime

        public float 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.
      • CompositorCpuStartToGpuEndElapsedTime

        public float 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.

      • CompositorGpuEndToVsyncElapsedTime

        public float 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.

      • AswIsActive

        public boolean AswIsActive()
        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.
      • AswActivatedToggleCount

        public int AswActivatedToggleCount()
        Increments each time ASW it activated where the app was forced in and out of half-rate rendering.
      • AswPresentedFrameCount

        public int AswPresentedFrameCount()
        Accumulates the number of frames presented by the compositor which had extrapolated ASW frames presented
      • AswFailedFrameCount

        public int AswFailedFrameCount()
        Accumulates the number of frames that the compositor tried to present when ASW is active but failed
      • create

        public static OVRPerfStatsPerCompositorFrame create​(long address)
        Returns a new OVRPerfStatsPerCompositorFrame instance for the specified memory address.
      • nHmdVsyncIndex

        public static int nHmdVsyncIndex​(long struct)
        Unsafe version of HmdVsyncIndex().
      • nAppFrameIndex

        public static int nAppFrameIndex​(long struct)
        Unsafe version of AppFrameIndex().
      • nAppDroppedFrameCount

        public static int nAppDroppedFrameCount​(long struct)
        Unsafe version of AppDroppedFrameCount().
      • nAppMotionToPhotonLatency

        public static float nAppMotionToPhotonLatency​(long struct)
        Unsafe version of AppMotionToPhotonLatency().
      • nAppQueueAheadTime

        public static float nAppQueueAheadTime​(long struct)
        Unsafe version of AppQueueAheadTime().
      • nAppCpuElapsedTime

        public static float nAppCpuElapsedTime​(long struct)
        Unsafe version of AppCpuElapsedTime().
      • nAppGpuElapsedTime

        public static float nAppGpuElapsedTime​(long struct)
        Unsafe version of AppGpuElapsedTime().
      • nCompositorFrameIndex

        public static int nCompositorFrameIndex​(long struct)
        Unsafe version of CompositorFrameIndex().
      • nCompositorDroppedFrameCount

        public static int nCompositorDroppedFrameCount​(long struct)
      • nCompositorLatency

        public static float nCompositorLatency​(long struct)
        Unsafe version of CompositorLatency().
      • nCompositorCpuElapsedTime

        public static float nCompositorCpuElapsedTime​(long struct)
        Unsafe version of CompositorCpuElapsedTime().
      • nCompositorGpuElapsedTime

        public static float nCompositorGpuElapsedTime​(long struct)
        Unsafe version of CompositorGpuElapsedTime().
      • nAswIsActive

        public static boolean nAswIsActive​(long struct)
        Unsafe version of AswIsActive().
      • nAswActivatedToggleCount

        public static int nAswActivatedToggleCount​(long struct)
        Unsafe version of AswActivatedToggleCount().
      • nAswPresentedFrameCount

        public static int nAswPresentedFrameCount​(long struct)
        Unsafe version of AswPresentedFrameCount().
      • nAswFailedFrameCount

        public static int nAswFailedFrameCount​(long struct)
        Unsafe version of AswFailedFrameCount().