DirectML,Windows Insider预览和DX SDK崩溃

时间:2019-03-16 02:22:16

标签: windows directx direct3d directx-12

因此,我已经安装了Windows 10.0.18358.1,最新的Visual Studio(17,至今尚未打扰19),更新的(内部)Windows SDK,其中应包括DX12 SDK。

但是,我没有设置DXSDK_DIR环境变量。

我可以在windows kits文件夹中看到所有DX和D3D标头和库,但是它们的分布并不真正与典型的include / bin / lib结构相对应。

有关如何纠正此问题的建议?我愿意为任何人的set输出复制 可以正常工作。

(DirectML标记是因为这是我需要的功能,也是所有这种精神错乱的根源。)

2 个答案:

答案 0 :(得分:1)

DXSDK_DIR变量仅由旧版DirectX SDK和'beta DirectX 12 SDK'测试工具使用,Windows 10 SDK未使用,因为标准WindowsSDKDir已包含必需的标头和库。

如果使用Visual Studio构建系统进行构建,则没有任何特殊设置可使用DirectX 12标头,因为它们已经在路径中了。可能您的项目默认设置为使用10.0.17763 Windows 10 SDK,因此要使用Windows 10 Insider SDK,您需要修改项目设置<WindowsTargetPlatformVersion>元素以引用较新的10.0.18xxx版本

如果您使用的是其他手动构建系统,则应使用Windows 10 SDK并行结构的包含路径:

%WindowsSdkDir% is typically "C:\Program Files (x86)\Windows Kits\10\"
%WindowsSDKVersion% is something like "10.0.17763.0\"
%arch% is "arm", "arm64", "x64", or "x86'

INCLUDE=%WindowsSdkDir%include\%WindowsSDKVersion%shared;
    %WindowsSdkDir%include\%WindowsSDKVersion%um; 
    %WindowsSdkDir%include\%WindowsSDKVersion%winrt; 
    %WindowsSdkDir%include\%WindowsSDKVersion%cppwinrt

LIB=%WindowsSdkDir%lib\%WindowsSDKVersion%um\%arch%

请参见Microsoft Docsthis blog post

  

Windows 10 SDK不包含实用程序,它们是共享源。对于D3DX12,您可以从here

获取最新的标头      

您可能还想看看DirectX Tool Kit for DX12DirectXTexDirectXMesh

     

出于历史和可用性的原因,DirectXMath 是Windows 10 SDK的一部分,但是您也可以从GitHub获取最新版本。最新的Windows 10 SDK还包括HLSL compiler/D3DCompile API,其中包括较旧的FXC.EXE和新的Shader Model 6 DXC.EXE

     

您可能还会发现directx-vs-templates上的Visual Studio模板很有用。

答案 1 :(得分:-1)

我建议还原到以前的版本,并在“反馈中心”中标记问题。另外,如果还没有安装,请在安装之前和之后运行chkdsk,以防万一。