Thursday, October 29, 2015

Windows 10でDirectX12のWARPデバイスの生成が失敗する時の処方箋

DirectX12対応ビデオカードを保有していなくてもWindows10だけでDirectX12のプログラムをテストできるWARPデバイスというものがあります。



GitHubで配布されているMicrosoftのサンプルプログラムであるDirectX-Graphics-Samplesに含まれるサンプルは、-warpというコマンドライン引数を渡すとWARPデバイスで実行できます。この時にOutputDebugStringでこんなエラーが出て失敗します。

D3D12GetDebugInterface: This method requires the D3D12 SDK Layers for Windows 10, but they are not present on the system.

また、DirectX11で、D3D11_CREATE_DEVICE_DEBUGを指定した場合も以下のエラーが出ていました。

D3D11CreateDevice: Flags (0x2) were specified which require the D3D11 SDK Layers for Windows 10, but they are not present on the system.

これは、Graphics Tools for Windows 10を入れることで解決します。以下のようにたどってインストールします。








あるいは、管理者権限で以下のコマンドを入力するといいようです。

Dism /online /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0

参考:



  1. http://stackoverflow.com/questions/32809169/use-d3d11-debug-layer-with-vs2013-on-windows-10
  2. https://msdn.microsoft.com/en-us/library/mt125501.aspx#InstallGraphicsTools
  3. http://blogs.msdn.com/b/vcblog/archive/2015/03/31/visual-studio-2015-and-graphics-tools-for-windows-10.aspx