Unreal Engine では、Windows 使用のデベロッパー向けに NVIDIA の Nsight™ Aftermath C++ ライブラリをサポートしています。これにより、クラッシュ発生後に NVIDIA GeForce-based GPUwhich からの追加データを提供します。 このデータにはクラッシュ時に GPU が何を行っていたかという重要な情報が含まれ、プロジェクトの GPU に起きている問題の追跡が可能になります。
Aftermath は、他のデバッグツールに比べてパフォーマンス使用料が控えめで負荷の少ないツールです。完成品のゲームと一緒に出荷して、 カスタマーのマシンから必要なデータの追加が可能なほど低負荷です。Aftermath は、プログラマーがクラッシュの主要因の追跡を支援するマーカーをコードに挿入できるようにします。Aftermath は現在アンリアル エンジン エディタにおいて、 問題の追跡し、レポートあるいは発見された問題を修正のために使用されています。
詳細およびプロジェクトでの使用方法に関しては、NVIDIA Nsight™ Aftermath に関するドキュメント をご覧ください。
NVIDIA Nsight™ Aftermath を有効にする
以下のコンソール 変数を、ConsoleVariables.ini コンフィギュレーション ファイルに追加することでプロジェクトで NVIDIA Nsight™ Aftermath を有効にできます。
r.GPUCrashDebugging=1
次の引数をコマンドラインにパスしても有効にすることができます。
-gpucrashdebugging
ログ
NVIDIA Aftermath を有効にすると、ログに以下の出力が表示されます。
LogD3D11RHI:[Aftermath] Aftermath を有効にして事前準備をする
Unreal Engine 4 でログにアクセスするには、[File Menu] > [Window] > [Developer Tools] > [Output Log] またはプロジェクト フォルダからログ テキスト ファイルを開きます。
クラッシュした場合、ログには以下のような表示がでます。
LogD3D11RHI:Error:Result failed at X:[Project Folder]\Engine\Source\Runtime\Windows\D3D11RHI\Private\D3D11Viewport.cpp:290 with error DXGI_ERROR_DEVICE_REMOVED DXGI_ERROR_DEVICE_HUNG
LogRHI:Error:[Aftermath] Status:Timeout
LogRHI:Error:[Aftermath] GPU Stack Dump
LogRHI:Error:[Aftermath] 0:Frame2769
LogRHI:Error:[Aftermath] 1:FRAME
LogRHI:Error:[Aftermath] 2:Scene
LogRHI:Error:[Aftermath] 3:ComputeLightGrid
LogRHI:Error:[Aftermath] 4:Compact
LogRHI:Error:[Aftermath] GPU Stack Dump
この例では、GPU がクラッシュし、[Aftermath]
処理による結果の行に問題のあるフレームのステータスと場所が表示されるので、
根本的原因を調査することができます。
考慮事項
約 200 から 300 マーカーの平均的なプロジェクトの場合、Aftermath の速度は十分ですが、 多数のオブジェクト単位のシャドウなど負荷を高くする要因があると速度が落ちます。この理由から、この機能はデフォルトでは有効にはなっていません。