根据 IDXGIAdapter::CheckInterfaceSupport documentation如果支持传入的接口(interface),则返回S_OK,否则返回DXGI_ERROR_UNSUPPORTED。程式码片段:

for( size_t i = 0; i < GInterface::m_Adapters.size(); i++)
{
    hr = GInterface::m_Adapters.at(i)->CheckInterfaceSupport(__uuidof(ID3D11Device), (LARGE_INTEGER*)&umdVersion);
    printf( "***D3D11 %sSUPPORTED FOR ADAPTER %d (%d)",
            (hr != DXGI_ERROR_UNSUPPORTED) ? "" : "NOT ",
            i,
            umdVersion);
}

控制台始终会打印NOT,但是如果我更改为__uuidof(ID3D10Device),则不会。
但我绝对知道我的GPU支持DirectX11,因为:
  • 我当前正在编写的程序正在使用DirectX 11,并且正在运行
  • 我的GPU:GTX 970,不是最新的,但是...是的,应该支持D3D11:D

  • 可以请别人清理一下我有点烦,谢谢。

    最佳答案

    IDXGIAdapter:CheckInterfaceSupport的“备注”部分(重点是我的):

    09-05 23:22