在 Windows 10 上使用 D3D11 调试层和 VS2013

Posted

技术标签:

【中文标题】在 Windows 10 上使用 D3D11 调试层和 VS2013【英文标题】:Use D3D11 debug layer with VS2013 on Windows 10 【发布时间】:2015-12-24 21:06:10 【问题描述】:

在我的 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】:

调试消息有点误导。对于 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) 时,您可能需要重新启用图形工具可选功能。

【讨论】:

对于 UseWUServer 设置为 1 的系统(请参阅 here),如果此方法无效,Chuck 的回答 here 可能会起作用。

以上是关于在 Windows 10 上使用 D3D11 调试层和 VS2013的主要内容,如果未能解决你的问题,请参考以下文章

当我启用 NVidia Optimus 时,为啥在 D3D11 中我的纹理上会出现条纹

全屏上的 d3d11 alt-tab 给出了奇怪的结果

在 Windows 10 上使用 VS Code 在 iphone 上调试颤振

无法让 Qt Creator 调试在 Windows 10 上运行

龙书D3D11 Demo配置(VS2015+win10)

在 Windows 10 上使用 Intellij IDEA 在 WSL 2 中运行和调试 Java