もんしょの巣穴blog

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

[UE4] UE4プロジェクトでVisual Studioのグラフィクス診断を使用する方法

ちょっと小ネタ。

Visual Studioには標準でグラフィクス診断という機能が備わっています。
その昔、DirectX SDKにはPixというツールが存在していました。
このツールはDirectXの描画が何をやっているか、どれくらい時間がかかっているかなどを調べるのに大変重宝するものでした。
現在、DirectX SDKはVisual Studioに統合されており、Pixもなくなってしまいました。
その代わりにVisual Studioが標準で診断機能を追加しているというわけです。

グラフィクス診断そのものの使い方はここでは述べませんが、Visual Studio 2015でグラフィクス診断をするには、C++プロジェクトをビルド後、[デバッグ] → [グラフィックス] → [グラフィックス デバッグの開始] を選択します。
通常はこれでグラフィクス診断が起動し、PrintScreenボタンでそのフレームの診断が可能です。
しかし、いつのバージョンからかはわかりませんが、UE4ではグラフィクス診断を起動すると以下のウィンドウが表示されてアプリが停止します。

ue410.jpg

これはデバイス作成時の設定が原因となっているようで、現状ではこのままグラフィクス診断を使用できません。
使用するにはエンジンコードを書き換える必要があります。
書き換え自体は非常に簡単で、以下のように修正します。

Engine/Source/Runtime/Windows/D3D11RHI/Private/Windows/WindowsD3D11Device.cpp (338)
// Add special check to support HMDs, which do not have associated outputs.
// To reject the software emulation, unless the cvar wants it.
// https://msdn.microsoft.com/en-us/library/windows/desktop/bb205075(v=vs.85).aspx#WARP_new_for_Win8
// Before we tested for no output devices but that failed where a laptop had a Intel (with output) and NVidia (with no output)
//const bool bSkipHmdGraphicsAdapter = bIsMicrosoft && CVarExplicitAdapterValue < 0 && !bUseHmdGraphicsAdapter;
const bool bSkipHmdGraphicsAdapter = false;

この bSkipHmdGraphicsAdapter が false になっていればOKです。
これをビルドして、ここからC++プロジェクトを作ればグラフィクス診断が行なえます。

なお、この修正方法はUE4.14にて有効な手法です。
他のバージョンでは少々異なるかもしれませんが、大抵はこのソースファイルを調べれば対応できるでしょう。

RenderDocを使うというのも1つの手段ですが、これはどうもプラグインを入れる必要があるので、プラグインなしでグラフィクスの調査をしたい場合はこの書き換えを行った上で診断してみましょう。

スポンサーサイト
  1. 2016/11/23(水) 23:38:55|
  2. UE4
  3. | トラックバック:0
  4. | コメント:0

プロフィール

monsho

Author:monsho
ゲームプログラマ?

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。