Я пытаюсь создать устройство 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, который возвращает тот же код ошибки.
Вы всегда должны использовать одну и ту же ОС и SDK Build, потому что API могут меняться между сборками. Поскольку вы используете SDK для сборки 10041, вам также следует обновить Windows 10 до сборки 10041. Откройте приложение «Настройки», найдите новую сборку Windows 10 и установите ее.