フォト

Google AdSense

  • AdSense
無料ブログはココログ

« ビルド済みDirectXShaderCompiler | トップページ | PIX 1704.27が出ていた »

2017.05.12

MiniEngineでHLSL 6.0とWave Operationを有効にする

Windows 10 Creators UpdateではHLSL 6.0が使えるようになりました。

新しいシェーダコンパイラのdxc.exeはVS 2017で15063のWindows SDKを入れておけば入っていました。

C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64


これをMiniEngineのプロジェクトのフォルダにコピーしておきます。

https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/MiniEngine

コピーしたらMiniEngineのCoreライブラリをビルドするのですが、その際に、下記のGraphicsCore.cppの中でコメントアウトされている#define DXILのコメントアウトを外します。

https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/MiniEngine/Core/GraphicsCore.cpp

Coreライブラリがビルド出来たらMiniEngineプロジェクトのフォルダにあるCompileSM6Test.batを起動します。

これによってdxc.exeでHLSL 6.0のコンパイラでいくつかのシェーダがコンパイルされます。これで、cppのヘッダファイルになります。

最後にModelViewerビルドしますが、ModelViewer.cppの#define _WAVE_OPのコメントアウトを外します。これで動くはずです。

https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/MiniEngine/ModelViewer/ModelViewer.cpp

これで動かない場合には、以下の理由が考えられます。

・GPUのドライバがHLSL 6.0のDXIL 1.0に対応していない
・GPUがWave Operationに対応していない

となります。GPUがWave Operation対応しているかどうかは、下記のフォルダに入っているdxcapsviewer.exeでチェックするといいです。Direct3D 12のWave Operationsを見ると良いです。

C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64

下記の画像のような感じですね。なお、Wave lane countはWave Operationの単位ですが、この画像のGPUはNVIDIAなのでWarpの32という感じですし、AMDだとたぶんWavefrontの64だと思います。

Wave

あと、そのほかにわかったこととしてこのオプションを起動するとグラフィックス診断が使えません。まだ対応していないようなので、シェーダのデバッグなどもできないと思います。Pixに関しては試していませんが、そのうち試してみます。

« ビルド済みDirectXShaderCompiler | トップページ | PIX 1704.27が出ていた »

Programming」カテゴリの記事

画像付き」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« ビルド済みDirectXShaderCompiler | トップページ | PIX 1704.27が出ていた »