chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using MCPForUnity.Editor.Helpers;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace MCPForUnity.Editor.Tools.Profiler
|
||||
{
|
||||
internal static class FrameTimingOps
|
||||
{
|
||||
internal static object GetFrameTiming(JObject @params)
|
||||
{
|
||||
#if UNITY_2022_2_OR_NEWER
|
||||
if (!FrameTimingManager.IsFeatureEnabled())
|
||||
{
|
||||
return new ErrorResponse(
|
||||
"Frame Timing Stats is not enabled. "
|
||||
+ "Enable it in Project Settings > Player > Other Settings > 'Frame Timing Stats', "
|
||||
+ "or use a Development Build (always enabled).");
|
||||
}
|
||||
#endif
|
||||
|
||||
FrameTimingManager.CaptureFrameTimings();
|
||||
var timings = new FrameTiming[1];
|
||||
uint count = FrameTimingManager.GetLatestTimings(1, timings);
|
||||
|
||||
if (count == 0)
|
||||
{
|
||||
return new SuccessResponse("No frame timing data available yet (need a few frames).", new
|
||||
{
|
||||
available = false,
|
||||
});
|
||||
}
|
||||
|
||||
var t = timings[0];
|
||||
return new SuccessResponse("Frame timing captured.", new
|
||||
{
|
||||
available = true,
|
||||
cpu_frame_time_ms = t.cpuFrameTime,
|
||||
#if UNITY_2022_2_OR_NEWER
|
||||
cpu_main_thread_frame_time_ms = t.cpuMainThreadFrameTime,
|
||||
cpu_main_thread_present_wait_time_ms = t.cpuMainThreadPresentWaitTime,
|
||||
cpu_render_thread_frame_time_ms = t.cpuRenderThreadFrameTime,
|
||||
#endif
|
||||
gpu_frame_time_ms = t.gpuFrameTime,
|
||||
#if UNITY_2022_2_OR_NEWER
|
||||
frame_start_timestamp = t.frameStartTimestamp,
|
||||
first_submit_timestamp = t.firstSubmitTimestamp,
|
||||
#endif
|
||||
cpu_time_present_called = t.cpuTimePresentCalled,
|
||||
cpu_time_frame_complete = t.cpuTimeFrameComplete,
|
||||
height_scale = t.heightScale,
|
||||
width_scale = t.widthScale,
|
||||
sync_interval = t.syncInterval,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user