halo_reach_lag遅延分析ツールを少し改良しHALO REACHを分析してみました。

遅延分析には、2つのツールを使用しています。
①コントローラ操作ツール
・32回の計測中にリロードが入る場合があるため途中でタイミングがずれてしまうため16回+インターバル(34秒)+16回に変更しインターバル中にリロード操作を行います。
 インターバル後も同一周期を保つためにインターバル時間を34秒に設定しています。
②遅延分析&動画作成ツール
・上記操作ツールの変更に伴い、インターバルの無駄な部分を自動でカッするように変更。
・ボタンの状態表示追加。
・ボタンが押されたフレームと前のフレームの差異表示(右上)
 ここの表示が真っ黒な場合は同一フレームなので2イント目、そうでなければ1イント目となります。

新しい遅延分析動画
 
ズレの影響で各イントの回数が違っています(1イント:17回、2イント:15回)
分析結果は前回と同様でした。

10.3078244166658626(100.0ms)
10.3306785416659176(100.0ms)
11.354530666665976(100.0ms)
12.315841208332696(100.0ms)
13.360547458332746(100.0ms)
14.36354545833286(100.0ms)
15.429105833332856(100.0ms)
16.43210383333296(100.0ms)
18.698170124996146(100.0ms)
19.76373049999626(100.0ms)
110.76672849999626(100.0ms)
111.76972649999636(100.0ms)
112.83528687499646(100.0ms)
113.83828487499646(100.0ms)
113.86113899999656(100.0ms)
114.92669937499656(100.0ms)
115.92969737499666(100.0ms)
20.2660494999966267(116.7ms)
21.269047499996687(116.7ms)
22.313753749996737(116.7ms)
24.276062291663457(116.7ms)
25.341622666663517(116.7ms)
26.344620666663567(116.7ms)
27.368472791663617(116.7ms)
28.783653291665437(116.7ms)
29.786651291665497(116.7ms)
210.83135754166557(116.7ms)
211.83435554166567(116.7ms)
212.89991591666567(116.7ms)
213.90291391666577(116.7ms)
214.94762016666587(116.7ms)
215.95061816666587(116.7ms)

次に負荷が低そうな上を向いた状態で遅延分析

かなり遅延が減っています。
10.4777574166633744( 66.7ms)
11.43906795833014( 66.7ms)
11.461922083330154( 66.7ms)
12.48577420833024( 66.7ms)
13.551334583330266(100.0ms)
14.554332583330316(100.0ms)
15.927804833332136(100.0ms)
16.951656958332196(100.0ms)
18.017217333332246(100.0ms)
19.020215333332296(100.0ms)
110.04406745833236(100.0ms)
111.04706545833246(100.0ms)
112.11262583333256(100.0ms)
113.11562383333256(100.0ms)
114.13949674999926(100.0ms)
115.14249474999936(100.0ms)
116.18720099999936(100.0ms)
20.4818448749993885( 83.3ms)
22.527549124999445( 83.3ms)
23.53054712499955( 83.3ms)
23.553401249999555( 83.3ms)
24.59810749999965( 83.3ms)
25.904884041662845( 83.3ms)
26.907882041662895( 83.3ms)
27.973442416662955( 83.3ms)
28.9764404166635( 83.3ms)
210.04200079166315( 83.3ms)
211.04499879166315( 83.3ms)
212.04799679166325( 83.3ms)
213.09270304166325( 83.3ms)
214.09570104166335( 83.3ms)
216.099717833335( 83.3ms)

どちらも30fpsで安定しているシーンですが描画負荷によって遅延も大きく変わっています。
ド素人なりに少し考えてみました。
オレンジ:入力のあったフレームレッド:入力が反映されたフレーム、ブルー:レッドフレームのレンダリング区間、イエロー:ブルー部分に反映される入力区間

最初の遅延分析結果はとこんな感じ(ポイントAは1イント目、Bは2イント目)
ここからレンダリング部分を省いた遅延だけで両方(ポイントA&B)を満たす条件は大雑把に3フレーム(50.1ms~66.8ms)だと言えます。

次の遅延分析ではこんな感じ(ポイントA&Bは1イント目、Cは2イント目)
この3つの状態を満たす条件は大雑把に29.9~31msです。
この違いの理由は専門家ではないのでわかりませんが軽めなシーンであれば同期待ち時間が余計にあるため
その時間が有効活用されてレスポンスが向上するのかな?と思いますが詳しい方がいたら解説お願いします。
今回の結果から同一ゲームでない場合、どちらも30fps安定だとしても内部処理負荷の違いで大きく結果が変わるため、単純に比較できないと分かりました。