在Windows 10上使用带有VS2013的D3D11调试层

时间:2015-09-27 14:50:07

标签: c++ debugging visual-studio-2013 windows-10 direct3d

在我的D3D 11项目中,我总是添加

#if (defined(DEBUG) || defined(_DEBUG))
deviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif /* (defined(DEBUG) || defined(_DEBUG)) */

到设备创建标志以启用调试输出。自从我升级到Windows 10后,这不再起作用了。设备创建失败,输出如下:

  

D3D11CreateDevice:指定了标志(0x2),它需要适用于Windows 10的D3D11 SDK图层,但它们不在系统中。   必须删除这些标志,或者必须安装Windows 10 SDK。   标志包括:D3D11_CREATE_DEVICE_DEBUG

但是,我无法使用Windows 10 SDK,也无法将项目从VS2013升级到VS 2015 atm。有没有办法解决这个问题,即我可以在Windows 10上使用VS2013启用D3D11调试层吗?

1 个答案:

答案 0 :(得分:46)

调试消息有点误导。对于Windows 10,Windows SDK不再安装Direct3D调试层。相反,您需要启用名为"图形工具"的Windows可选功能。其中包括调试层。在Windows 10上安装VS 2015和Windows 10 SDK也应该自动启用此功能,但您可以直接执行此功能。

(a)设置面板 - >系统 - >应用程序&功能 - >管理可选功能 - >添加功能 - >选择"图形工具"

(b)来自管理员命令行提示符:

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

请参阅this post

  

请注意,从Windows 10(10240)升级到2015年11月更新(10586)时,可能需要重新启用图形工具可选功能。