Directx 12 - 不支持适配器

时间:2016-03-21 16:57:31

标签: directx-12

我目前正在使用nvidia 675M,在directx 11中我运行时功能级别为11_0

我正在关注directx 12的指南,他们说我仍然可以创建功能级别为11_0的设备,但是当我运行它时说它不受支持

我知道100%我正在使用正确的适配器,因为它说675m

所以只是想知道这个或其他方法是否有任何解决办法,或者只是我需要一个新的显卡:(

3 个答案:

答案 0 :(得分:1)

NVidia 675M是" Fermi"每个this post NVIDIA应支持DirectX 12的GPU。 NVidia DX12驱动程序支持的最初焦点是他们的Maxwell和Kepler部件,因此请与NVidia联系以获取支持Fermi的驱动程序。

要记住的另一个问题是,在具有多个图形卡的系统中,您需要确保选择正确的适配器。 DirectX 12 VS templates使用以下代码来实现此目的:

void DX::DeviceResources::GetAdapter(IDXGIAdapter1** ppAdapter)
{
    *ppAdapter = nullptr;

    ComPtr<IDXGIAdapter1> adapter;
    for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != m_dxgiFactory->EnumAdapters1(adapterIndex, adapter.ReleaseAndGetAddressOf()); ++adapterIndex)
    {
        DXGI_ADAPTER_DESC1 desc;
        DX::ThrowIfFailed(adapter->GetDesc1(&desc));

        if (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE)
        {
            // Don't select the Basic Render Driver adapter.
            continue;
        }

        // Check to see if the adapter supports Direct3D 12, but don't create the actual device yet.
        if (SUCCEEDED(D3D12CreateDevice(adapter.Get(), m_d3dMinFeatureLevel, _uuidof(ID3D12Device), nullptr)))
        {
#ifdef _DEBUG
            WCHAR buff[256] = {};
            swprintf_s(buff, L"Direct3D Adapter (%u): VID:%04X, PID:%04X - %ls\n", adapterIndex, desc.VendorId, desc.DeviceId, desc.Description);
            OutputDebugStringW(buff);
#endif
            break;
        }
    }

#if !defined(NDEBUG)
    if (!adapter)
    {
        // Try WARP12 instead
        if (FAILED(m_dxgiFactory->EnumWarpAdapter(IID_PPV_ARGS(adapter.ReleaseAndGetAddressOf()))))
        {
            throw std::exception("WARP12 not available. Enable the 'Graphics Tools' feature-on-demand");
        }

        OutputDebugStringA("Direct3D Adapter - WARP12\n");
    }
#endif

    if (!adapter)
    {
        throw std::exception("No Direct3D 12 device found");
    }

    *ppAdapter = adapter.Detach();
}

答案 1 :(得分:0)

NVIDIA尚未发布支持费米DX12的驱动程序,因此无法使用。

答案 2 :(得分:0)

目前R384.76中引入了对Fermi中DirectX 12的初始支持,正如用户在Guru3D herehere上所观察到的那样,尽管驱动程序发行说明没有说明这一点。

您可能需要运行3DMark Time Spy或类似的DirectX 12工作负载来确认这一点。