/// <summary> /// The GetGPUTimeLastFrame retrieves the time spent by the GPU last frame, in seconds, as reported by the VR SDK. /// </summary> /// <returns>The total GPU time utilized last frame as measured by the VR subsystem.</returns> public static float GetGPUTimeLastFrame() { #if UNITY_5_6_OR_NEWER float gpuTimeLastFrame; if (VRStats.TryGetGPUTimeLastFrame(out gpuTimeLastFrame)) { return(gpuTimeLastFrame); } return(0f); #else return(VRStats.gpuTimeLastFrame); #endif }
private void UpdateDebugVisualization() { if (!drawDebugVisualization || debugVisualizationQuadMaterial == null) { return; } float gpuTimeLastFrame; VRStats.TryGetGPUTimeLastFrame(out gpuTimeLastFrame); int lastFrameIsInBudget = interleavedReprojectionEnabled || gpuTimeLastFrame > singleFrameDurationInMilliseconds ? 0 : 1; debugVisualizationQuadMaterial.SetInt(ShaderPropertyIDs.RenderScaleLevelsCount, allRenderScales.Count); debugVisualizationQuadMaterial.SetInt(ShaderPropertyIDs.DefaultRenderViewportScaleLevel, defaultRenderViewportScaleLevel); debugVisualizationQuadMaterial.SetInt(ShaderPropertyIDs.CurrentRenderViewportScaleLevel, renderViewportScaleSetting.currentValue); debugVisualizationQuadMaterial.SetInt(ShaderPropertyIDs.CurrentRenderScaleLevel, renderScaleSetting.currentValue); debugVisualizationQuadMaterial.SetInt(ShaderPropertyIDs.LastFrameIsInBudget, lastFrameIsInBudget); }
public void SaveCurrentFrameTiming() { bufferIndex = (bufferIndex + 1) % buffer.Length; VRStats.TryGetGPUTimeLastFrame(out buffer[bufferIndex]); }