コンテンツにスキップ

Understanding RenderStream Graphs (RenderStream グラフの理解)

RenderStream のグラフはどこにありますか?

Section titled “RenderStream のグラフはどこにありますか?”

RenderStream のグラフは2か所で確認できます。

  1. ワークロード内のいずれかのマシンの Details(詳細)ビュー
    • 特定のレンダーノードマシンのエンジンおよびストリームのプロファイリングを表示します。
    • ワークロードウィジェット内の特定のマシンの横にある「Details」ボタンからアクセスできます。

RenderStream グラフの表示場所 ワークロードウィジェットと、そこからアクセスできるストリームプロファイリンググラフ

  1. Monitoring Manager(モニタリングマネージャー)の「RenderStream」タブ
    • すべてのストリームとワークロードのすべてのグラフを一覧表示します。
    • グラフはストリームを受信するアクターごとにグループ化されます。
    • Monitoring Manager(Disguise の FPS バグを左クリック)からアクセスできます。

Monitoring Manager で利用できる RenderStream のグラフ Monitoring Manager で確認できる RenderStream のグラフ

RenderStream グラフの表示場所

RenderStream プラグインがレンダーノードから取得した、エンジンに依存しないプロファイリングデータです。

Time in queue (ms) (キュー内での待機時間)
Section titled “Time in queue (ms) (キュー内での待機時間)”

フレーム要求が、ワークロードインスタンスによる処理に取り上げられるまで待機する時間です。

Engine CPU time (ms) (エンジン CPU 時間)
Section titled “Engine CPU time (ms) (エンジン CPU 時間)”

フレーム要求が処理に費やす時間です。フレーム要求が処理に取り上げられてから、結果のフレームを Disguise に送り返す呼び出しまでの時間です。

Time until frame ready (ms) (フレーム準備完了までの時間)
Section titled “Time until frame ready (ms) (フレーム準備完了までの時間)”

フレームの送信にかかる時間です。

レンダーノードによってドロップされたフレームを表示します。

フレームを Disguise に送り返す際の問題を表示します。

通常、Time in queue は最小限であるべきで、ほとんどの時間は Engine CPU time (ms) で示されるフレーム生成に費やされます。破棄される要求や送信失敗とマークされる要求があってはなりません。

Time in queue が高い場合: エンジンが Disguise からの受信要求のレートに追いつけていません。最終的に、キューで待機する要求が多すぎると、レンダーノードは要求を破棄し、それはグラフの Discarded ラインに反映されます。

Time until frame ready が高い場合: 送信/ネットワークの問題を示します。

Profiling graph (プロファイリンググラフ)

Section titled “Profiling graph (プロファイリンググラフ)”

プロファイリンググラフ

ワークロードインスタンスのエンジン固有のプロファイリング情報です。このデータは各 RenderStream プラグインの実装に固有のものであり、実装によっては欠落している場合もあります。

取得できるデータは、特定のプラグイン実装がどのエンジンデータを取得しているかに完全に依存します。上に示した例では、UE パイプラインの各ステップにどれだけ時間がかかっているかについての詳細なデータを持つ Unreal Engine が使われています。これらのいずれかのセクションで異常に高い値が出ている場合は、高い CPU 使用率(ブループリント、ジオメトリー、物理演算など)、高い GPU 使用率(解像度、ポストプロセスなど)、その他の問題を示している可能性があります。たとえば、Unreal Idle Time が高い場合は、nDisplay 同期におけるネットワークの低速化を示している可能性があります。

ストリームグラフ

ストリームの受信側(アクター/ディレクター)によって生成される、ストリームの遅延を表すデータです。

render frame delta (ms) (レンダーフレームデルタ)
Section titled “render frame delta (ms) (レンダーフレームデルタ)”

到着したフレームと、その前に到着したフレームとのタイムスタンプの差を表示します。

ストリームの実際の遅延。Disguise がフレームを要求してから、その要求に対するフレームを受信し返すまでの経過時間です。

active latency (ms) (アクティブ遅延)
Section titled “active latency (ms) (アクティブ遅延)”

現在のアクティブ遅延。セッション内で最も遅いストリームに基づきます。

render frame delta は一定であるべきです(60fps では delta は 16.6ms になるはずです)。変動は、ドロップされたフレーム要求か、RenderStream コントローラーマシンの不安定なフレームレートのいずれかを示します。

latency は active latency から大きくかけ離れているべきではありません。他のストリームよりも著しく速いストリームがある場合、その latency は active latency よりもかなり低く表示されます。両者の差が4フレーム分の時間より大きい場合は、ワークロードのバランスをより適切に取る取り組みが必要です。 また、手動の active latency オーバーライドを使用している場合、これはオーバーライド値が正確でないことを示している可能性もあります。

active latency と latency が激しく変動するべきではありません。それはアセット側で最適化が必要であることを示している可能性があります。

Render skew graph (レンダースキューグラフ)

Section titled “Render skew graph (レンダースキューグラフ)”

レンダースキューグラフ

ワークロードのストリーム間で受信されたフレームが、時間的にどれだけよく一致しているかを表すグラフです。

Active latency error (アクティブ遅延の誤差)
Section titled “Active latency error (アクティブ遅延の誤差)”

RenderStream ワークロードの表示フレームが、アクティブ遅延の予測にどれだけ近いかを表示します。これは、アクティブ遅延に基づく予測タイムスタンプと、最も一致するフレームグループの実際のタイムスタンプとの差です。

最もよく一致するフレームグループ内で、これらのラインは個々のストリームの誤差を示します。

理想的には、active latency error はゼロで、個々のストリームの誤差は1フレーム分の時間未満であるべきです。

  • 個々のストリームの誤差が1フレーム分の時間より大きい場合、同じアクターに属するフラグメント間の継ぎ目(ティアリング)として知覚される可能性があります。
  • active latency error が複数の購読アクター間で異なる場合(このグラフの複数のインスタンス間で)、2つのアクターの出力の境界エッジでの継ぎ目(ティアリング)として知覚される可能性があります。

Response skew graph (レスポンススキューグラフ)

Section titled “Response skew graph (レスポンススキューグラフ)”

レスポンススキューグラフ

現在処理中の RenderStream レスポンスが、アクティブ遅延の予測にどれだけ近いかを表示します。これは、アクティブ遅延に基づく予測タイムスタンプと、最も一致するフレームレスポンスグループ(レンダーノードからのフレーム送信通知)の実際のタイムスタンプとの差です。

これは、アクティブ遅延の推定がストリームにどれだけよく適合しているかを示すもう1つの指標として使用できます。理想的には、このグラフの誤差は1フレーム分の時間未満であるべきです。1フレームを超える誤差は、d3net ネットワークアダプターのネットワーク問題を示している可能性があります。RenderStream のフレーム要求の送信とレンダーノードからの送信通知の応答の受信に使用されるのが、このアダプターだからです。

Texture parameter latency graph (テクスチャパラメーター遅延グラフ)

Section titled “Texture parameter latency graph (テクスチャパラメーター遅延グラフ)”

テクスチャパラメーター遅延グラフ

このグラフは、すべてのテクスチャパラメーターストリームについて表示されます。レンダーノードへの伝送におけるテクスチャパラメーターの遅延を表示します。

コントローラーマシンで、送信のためにテクスチャを準備するのに費やされる時間です。

コントローラーマシンで、送信側がテクスチャをネットワークカードに送り出すのにかかった時間です。

Waiting in cache (ms) (キャッシュ内での待機)
Section titled “Waiting in cache (ms) (キャッシュ内での待機)”

テクスチャパラメーターが、レンダーノード上のレンダーエンジンによる処理を待機するのに費やした時間です。

Frame request error (ms) (フレーム要求の誤差)
Section titled “Frame request error (ms) (フレーム要求の誤差)”

現在のフレーム要求のタイムスタンプと、レンダーエンジンがこのフレームに使用しているテクスチャパラメーターのタイムスタンプとの差です。

実際には、この誤差は、実際のネットワーク伝送時間を含む、テクスチャパラメーターパイプラインのこれまでのすべての段階で蓄積された遅延の合計になる傾向があります。

テクスチャパラメーターは、通常のストリーム遅延(Stream graph を参照)に加えて追加の遅延が発生します。テクスチャパラメーター遅延グラフはこの追加の遅延を明らかにし、特にテクスチャパラメーターに関連するネットワークまたは処理パフォーマンスの問題を診断するために使用できます。