DirectML, Windows Insider Preview и DX SDK Debacle - PullRequest
0 голосов
/ 16 марта 2019

Итак, у меня установлена ​​Windows 10.0.18358.1, последняя версия Visual Studio (17, еще не беспокоится о 19), обновленный (Insider) Windows SDK, который должен включать DX12 SDK.

И, тем не менее, у меня не установлена ​​переменная окружения DXSDK_DIR.

Я вижу все заголовки и библиотеки DX и D3D в папке наборов Windows, но их распределение на самом деле не соответствует типичной структуре include / bin / lib.

Предложения о том, как это исправить? Я согласен на копию чьего-либо set вывода это работает.

(тег DirectML потому, что это особенность, которая мне нужна, и источник всего этого безумия.)

Ответы [ 2 ]

1 голос
/ 16 марта 2019

Переменная 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 и это сообщение в блоге

Windows 10 SDK не содержит утилит, которые вместо этого являются общим источником. Для D3DX12 вы можете получить последний заголовок из здесь

Вы также можете посмотреть Набор инструментов DirectX для DX12 , DirectXTex и DirectXMesh

По историческим причинам и в целях удобства использования DirectXMath является частью Windows 10 SDK, но вы также можете получить последнюю версию из GitHub . Последние SDK для Windows 10 также включают в себя HLSL-компилятор / D3DCompile API , включая как более старую FXC.EXE, так и новую Shader Model 6 DXC.EXE.

Вы также можете найти шаблоны Visual Studio в directx-vs-templates полезными.

0 голосов
/ 16 марта 2019

Я бы предложил вернуться к предыдущей сборке и отметить проблему в Feedback Hub.Также, если вы этого еще не сделали, запустите chkdsk до и после установки, на всякий случай.

...