Не удается создать устройство Direct3D12 с E_NoInterface

Я пытаюсь создать устройство D3D12, как указано в

https://msdn.microsoft.com/en-us/library/dn899120%28v=vs.85%29.aspx

У меня есть NVidia 670 GTX, Windows 10 Preview build 9926 и последние 10041 Windows SDK.

У меня также есть последняя бета-версия драйвера NVidia, системная информация для GeForce сообщает о времени выполнения DirectX12.

призвание

ID3D12Device* device;
HRESULT hr = D3D12CreateDevice(NULL, D3D_DRIVER_TYPE::D3D_DRIVER_TYPE_HARDWARE,
D3D12_CREATE_DEVICE_FLAG::D3D12_CREATE_DEVICE_NONE,
D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_0, D3D12_SDK_VERSION, __uuidof(ID3D12Device), (void**)&device);

Возвращает мне HRESULT с кодом ошибки NOINTERFACE

Странно зовет

ID3D12Object* device;
HRESULT hr = D3D12CreateDevice(NULL, D3D_DRIVER_TYPE::D3D_DRIVER_TYPE_HARDWARE,
D3D12_CREATE_DEVICE_FLAG::D3D12_CREATE_DEVICE_NONE,
D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_0, D3D12_SDK_VERSION, __uuidof(ID3D12Object), (void**)&device);

возвращает мне действительный объект, но я не могу использовать QueryInterface, чтобы впоследствии получить действительный объект устройства.

Обратите внимание, что я уже пытался использовать LoadLibrary / GetProcAddress вместо использования заголовков d3d12, который возвращает тот же код ошибки.

0

Решение

Вы всегда должны использовать одну и ту же ОС и SDK Build, потому что API могут меняться между сборками. Поскольку вы используете SDK для сборки 10041, вам также следует обновить Windows 10 до сборки 10041. Откройте приложение «Настройки», найдите новую сборку Windows 10 и установите ее.

3

Другие решения


По вопросам рекламы [email protected]