マシン監視グラフ
Designer 内にはいくつかのマシン監視グラフがあります。
Monitoring Manager を開くには、トラックの右下にある FPS を左クリックします。

Monitoring Manager ウィンドウが開いたら、Local を左クリックして監視グラフのリストを表示します。

Output Latency Graph
Section titled “Output Latency Graph”これは何ですか?
Section titled “これは何ですか?”このグラフは、各出力のキュー長を示します。キュー長は、プロジェクトが normal latency、low latency、ultra low latency のいずれで実行されているかによって決まります。
このグラフはドロップフレームを確認するのに使用できます。キュー長が 1 減少した場合、次のフレームがキューに追加される前にフレームが出力されたことを意味します。フレームはキューイングされるため、これは出力上ではフレームドロップとして見えません。フレームがレンダリングされ次第出力される ultra low latency で実行している場合、フレームが出力される時点で次のフレームがすでに準備できていれば、フレームドロップが見えます。
normal latency で実行しているのにグラフラインがゼロまで下がる場合、フレームの準備が間に合っておらず、フレームドロップとして現れる可能性があります。

GPU Profiler
Section titled “GPU Profiler”これは何ですか?
Section titled “これは何ですか?”これは、さまざまなタスクに費やされた時間量を示す累積グラフです。たとえば、GUI に費やされた時間、DMX ダウンロードに費やされた時間などです。
ビデオを再生する際のイベントの順序は次のとおりです。
ビデオファイルからフレームをロード → RAM にデコード → GPU にアップロード → GPU でレンダリング。
GPU でフレームをレンダリングするのにかかる時間。これにはビデオ再生に関連するものだけでなく、その他のレンダリング作業も含まれます。Frame が完了すると、フレームは出力の準備が整います。
Deliver Frames
Section titled “Deliver Frames”上記のイベントシーケンスで、フレームを GPU にアップロードするのにかかる時間。
Compositor
Section titled “Compositor”すべてのトラック要素にかかった合成時間の合計。
GUI のレンダリングに費やされた時間。
Render Everything
Section titled “Render Everything”Compositor と GUI 時間を構成するすべてのコンポーネントの累積。
DMX のダウンロードに費やされた時間。
どのように使いますか?
Section titled “どのように使いますか?”グラフを見ると、プロセスの各部分にどれだけの時間が費やされているかを確認できます。いずれかのラインが点線を超えている場合、サーバーはフレームをドロップしています。点線は 50fps または 60fps のいずれかで費やせる最大時間を示しています。

Frame Latency
Section titled “Frame Latency”これは何ですか?
Section titled “これは何ですか?”フレームがレンダリングされてから出力のために表示されるまでの過程を、現在時刻 0 を基準としてミリ秒(ms)単位でグラフ化します。
フレームの準備が整った(レンダリングが完了した)時刻。フレームがレンダリングされるたびに「ready」状態になります。「Ready」は、実際に表示される前にフレームが何ミリ秒早く準備できたかを示します。この値は Disguise の負荷に応じて変動します。
Queued
Section titled “Queued”フレームが present キューに追加された時刻。present キューとは、これが次の出力フレームであることを Disguise が Windows に通知するものです。フレームがレンダリングされるとすぐにキューに追加されるため、これは「ready」とほぼ同一になるでしょう。キューが満杯でフレームをすぐに追加できない場合、時刻はより高くなる可能性があります。
Estimated Present
Section titled “Estimated Present”キューに追加された時点から、キューの長さに基づいてフレームが表示されると推定される時刻。
Present
Section titled “Present”フレームが実際に表示された時刻で、常に 0 です。
他のグラフ化された値はすべて、これを基準としています。
どのように使いますか?
Section titled “どのように使いますか?”Disguise の動作が遅い場合、フレームは時間内に準備されず、0 に近づきすぎたり、0 を超えたりします。これはフレームをドロップしていることを意味します。また、low または ultra low latency モードで実行している場合、「ready」から「present」までの時間が短くなり、half speed モードでは full speed モードの 2 倍早くフレームが準備されることもわかります。

これは何ですか?
Section titled “これは何ですか?”ヘッドごとの 1 秒あたりのフレーム数(FPS)をグラフ化します。
どのように使いますか?
Section titled “どのように使いますか?”このグラフを使用して、出力ヘッドでフレームをドロップしているかどうかを確認します。

Process Memory
Section titled “Process Memory”これは何ですか?
Section titled “これは何ですか?”Memory Used (MB)
Section titled “Memory Used (MB)”Disguise が使用しているメモリ量。
Delta (KB)
Section titled “Delta (KB)”あるフレームから次のフレームまでの使用メモリの差。
どのように使いますか?
Section titled “どのように使いますか?”リソースを追加したり削除したりすると、たとえばショーファイルのセットアップやプログラミングなどの通常の動作で値が変化することを確認できます。
このグラフは通常使用する必要はありませんが、クラッシュが発生した際にメモリ関連でないことを確認するために使用できます。メモリリークがある場合、delta は継続的に上昇傾向でスパイクします。

PCI/CPU IO
Section titled “PCI/CPU IO”これは何ですか?
Section titled “これは何ですか?”CPU が PCI デバイスから読み取っているデータをグラフ化します。
CPU が PCI デバイスに書き込んでいるデータをグラフ化します。
読み取りと書き込み以外の操作中に転送されたバイト数。
どのように使いますか?
Section titled “どのように使いますか?”通常の操作でこのグラフが必要になることはまずありません。PCI デバイスまたはマザーボードの故障が疑われる場合に使用できます。

これは何ですか?
Section titled “これは何ですか?”ディスクの読み取り/書き込み速度を MB/s で表示します。
どのように使いますか?
Section titled “どのように使いますか?”どこかでボトルネックが発生していないかを確認するために使用できます。たとえば、読み取り速度が上がってからプラトーに達するなどです。

これは何ですか?
Section titled “これは何ですか?”CPU グラフは累積です。
Working Time (ms)
Section titled “Working Time (ms)”CPU に費やされた時間量。
Present Wait Time (ms)
Section titled “Present Wait Time (ms)”present を待っている時間量。normal latency でプロジェクトを実行している場合はフラットになるはずですが、ultra low latency で実行している場合はキューがないためこのシリーズが「スパイキー」になります。
Total Time (ms)
Section titled “Total Time (ms)”Total time は working time と present wait time の累積で、常に FPS に必要な ms 以下に収まるはずです。
どのように使いますか?
Section titled “どのように使いますか?”通常のセットアップでは、Disguise はフレームを表示するために全 CPU サイクルを使うため、total time はフラットになるはずです。すべての更新ループの最後に、表示するために GPU に何かが渡されます。そのループが早く終了した場合、キューにスロットが利用可能になるまで待つ必要があります。
CPU working time が高く、present time が低い場合、これはキューが空になっているためです。このシナリオでフレームがドロップする場合、CPU 負荷が原因です。

GPU Memory
Section titled “GPU Memory”これは何ですか?
Section titled “これは何ですか?”このグラフは、GPU が現在使用しているメモリ量を示します。
GPU は自身のメモリアロケーションを処理する責任がありますが、Disguise は必要な GPU メモリをできるだけ効率的に使用しようとします。
GUI 内で画面にレンダリングされているすべてのテクスチャは、GPU にアップロードされるビットマップです。これには、すべての GUI 要素と、再生中のメディアが含まれます。
Disguise は、テクスチャが不要になった際に退避することで、使用中の GPU メモリ量を削減しようとします。テクスチャがしばらく使用されない場合、退避されます。逆に、LUT のような一部のテクスチャは GPU へのアップロードがコストが高いですが、一度アップロードされれば高速に使用できます。このため、Disguise はこれらのテクスチャを生かしておくよう GPU に指示します。
どのように使いますか?
Section titled “どのように使いますか?”通常は必要ありませんが、メモリリークなどのバグが疑われる場合、継続的に増加する GPU Memory 値は疑わしいバグを報告する際の有用な情報です。GPU Memory はテクスチャがアップロードされるにつれて増加し、退避されるにつれて減少します。

これは何ですか?
Section titled “これは何ですか?”actualFrameTime は次の present のクロックで、delta は各フレーム時間の間に経過した時間量です。
どのように使いますか?
Section titled “どのように使いますか?”この値はシステムの fps によって決まる値で一定に保たれているはずです。

RenderStream グラフの監視リファレンス
Section titled “RenderStream グラフの監視リファレンス”RenderStream グラフはどこで見つけられますか?
Section titled “RenderStream グラフはどこで見つけられますか?”RenderStream グラフは 2 つの場所で見つけられます。
- ワークロード内のいずれかのマシンの Details ビュー
- 特定のレンダーノードマシンのエンジンおよびストリームプロファイリングを表示
- ワークロードウィジェットの特定のマシンの横にある「Details」ボタンからアクセス可能

- Monitoring Manager の「RenderStream」タブ
- すべてのストリームとワークロードのすべてのグラフをリスト表示
- ストリームを受信する Actor によってグラフがグループ化される
- Monitoring Manager(Disguise の FPS バグを左クリック)からアクセス可能

RenderStream グラフ
Section titled “RenderStream グラフ”Renderer graph
Section titled “Renderer graph”
これは何ですか?
Section titled “これは何ですか?”レンダーノードから RenderStream プラグインによってキャプチャされた、エンジンに依存しないプロファイリングデータ。
Time in queue (ms)
Section titled “Time in queue (ms)”ワークロードインスタンスによって処理されるためにフレームリクエストがキューで待機する時間。
Engine CPU time (ms)
Section titled “Engine CPU time (ms)”フレームリクエストが処理される時間。これは、フレームリクエストが処理のために取得されてから、結果として得られたフレームを disguise に送り返すための呼び出しまでの時間です。
Time until frame ready (ms)
Section titled “Time until frame ready (ms)”フレームを送信するのにかかる時間。
Discarded
Section titled “Discarded”レンダーノードによってドロップされたフレームを表示します。
Send failed
Section titled “Send failed”フレームを disguise に送り返す際の問題を表示します。
どのように使いますか?
Section titled “どのように使いますか?”通常、time in queue は最小限で、ほとんどの時間は Engine CPU time (ms) で示されるフレーム生成に費やされるはずです。リクエストが破棄されたり、送信失敗としてマークされたりすることはあってはなりません。
Time in queue が高い: エンジンが disguise からの受信リクエストの速度に追いついていません。最終的に、キューに待機しているリクエストが多すぎる場合、レンダーノードはリクエストを破棄し、これはグラフの Discarded ラインに反映されます。
Time until frame ready が高い: 送信/ネットワークの問題を示唆します。
Profiling graph
Section titled “Profiling graph”
これは何ですか?
Section titled “これは何ですか?”ワークロードインスタンスのエンジン固有のプロファイリング情報。このデータは各 RenderStream プラグイン実装に固有で、実装によっては存在しない可能性もあります。
どのように使いますか?
Section titled “どのように使いますか?”得られるデータは、特定のプラグイン実装がどのエンジンデータにアクセスしているかに完全に依存します。上記の画像のケースでは、Unreal Engine による UE パイプラインの各ステップにかかる時間に関する詳細なデータがあります。これらのセクションのいずれかで異常に高い値が示される場合、高い CPU 使用率(blueprint、ジオメトリ、物理など)、高い GPU 使用率(解像度、ポストプロセスなど)、またはその他の問題を示している可能性があります。たとえば、高い Unreal Idle Time は、nDisplay 同期におけるネットワークの遅延を示す可能性があります。
Stream graph
Section titled “Stream graph”
これは何ですか?
Section titled “これは何ですか?”ストリームの受信者(actor/director)によって生成された、ストリームのレイテンシーを記述するデータ。
render frame delta (ms)
Section titled “render frame delta (ms)”到着するフレームと、その前に到着したフレームとの間のタイムスタンプの差を示します。
latency (ms)
Section titled “latency (ms)”ストリームの実際のレイテンシー: Disguise がフレームを要求してから、そのリクエストに対するフレームを受信するまでの経過時間。 これはネットワークレイテンシーとエンジンレイテンシーの合計に等しいです。
network latency (ms)
Section titled “network latency (ms)”圧縮ストリームのネットワーク通信と圧縮に起因する時間。
engine latency (ms)
Section titled “engine latency (ms)”レンダリングエンジンの CPU および GPU 操作に起因する時間。
active latency (ms)
Section titled “active latency (ms)”セッション内で最も遅いストリームに基づく現在のアクティブレイテンシー。
どのように使いますか?
Section titled “どのように使いますか?”Render frame delta は一定であるべきです(60fps で、delta は 16.6ms であるべき)。変動は、フレームリクエストのドロップまたは RenderStream コントローラーマシンのフレームレートの不安定さを示します。
レイテンシーは active latency から大きくは外れないはずです。他のストリームよりも大幅に高速なストリームがある場合、そのレイテンシーは active latency よりもはるかに低く表示されます。両者の差が 4 フレーム分の時間を超える場合、ワークロードのバランスをより良く取るための努力をすべきです。 また、手動の active latency オーバーライドを使用している場合、オーバーライド値が正確でないことを示している可能性があります。
Active latency とレイテンシーは大きく変動すべきではありません。これは、アセット側で最適化が必要であることを示している可能性があります。
Render skew graph
Section titled “Render skew graph”
これは何ですか?
Section titled “これは何ですか?”このグラフは、ワークロードのストリーム全体で受信されたフレームが時間的にどの程度よくマッチしているかを示します。
Active latency error
Section titled “Active latency error”RenderStream ワークロードの表示されたフレームが active latency 予測にどれだけ近いかを示します。これは active latency に基づく期待タイムスタンプと、最も一致するフレームのグループの実際のタイムスタンプとの差です。
Streams error
Section titled “Streams error”最も一致するフレームのグループ内で、これらのラインは個々のストリームのエラーを示します。
どのように使いますか?
Section titled “どのように使いますか?”理想的には、active latency error はゼロで、個々のストリームエラーは 1 フレーム分の時間未満であるべきです。
- 個々のストリームに 1 フレーム分の時間を超えるエラーがある場合、これは同じ Actor に属するフラグメント間の裂け目として知覚される可能性があります。
- active latency error が複数の受信側 Actor 間で異なる場合(このグラフの複数のインスタンス間で)、これは 2 つの Actor の出力間のエッジで裂け目として知覚される可能性があります。
Response skew graph
Section titled “Response skew graph”
これは何ですか?
Section titled “これは何ですか?”現在処理されている RenderStream レスポンスが active latency 予測にどれだけ近いかを示します。これは active latency に基づく期待タイムスタンプと、最も一致するフレームレスポンスのグループ(レンダーノードからの「フレーム送信」通知)の実際のタイムスタンプとの差です。
どのように使いますか?
Section titled “どのように使いますか?”これは、active latency の推定がストリームにどれだけ適合しているかを示すもう 1 つの指標として使用できます。理想的には、このグラフのエラーは 1 フレーム分の時間未満であるべきです。1 フレーム以上のエラーは、RenderStream のフレームリクエスト送信およびレンダーノードからの送信通知応答の受信に使用される d3net ネットワークアダプターのネットワーク問題を示している可能性があります。