0

私は現在 nvidia 675M を使用しており、directx 11 では機能レベル 11_0 で問題なく動作していました。

私は directx 12 のガイドに従っていますが、機能レベル 11_0 でデバイスを作成できると言われていますが、実行するとサポートされていないと表示されます

675m と表示されているように、正しいアダプターを使用していることは 100% わかっています。

それで、これまたは別の方法を回避する方法があるかどうか、または単に新しいグラフィックカードが必要かどうか疑問に思いました:(

4

3 に答える 3

1

NVidia 675M は「Fermi」GPU であり、この投稿に従って NVIDIA によって DirectX 12 でサポートされる必要があります。NVidia の DX12 ドライバー サポートの最初の焦点は Maxwell と Kepler の部分なので、Fermi をサポートするドライバーについては NVidia に確認してください。

心に留めておくべきもう 1 つの問題は、複数のグラフィックス カードを搭載したシステムでは、実際に適切なアダプターを選択していることを確認する必要があるということです。DirectX 12 VS テンプレートは、次のコードを使用してこれを実現します。

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();
}
于 2016-03-21T17:23:31.583 に答える
0

NVIDIA は、Fermi で DX12 をサポートするドライバーをまだリリースしていないため、これは機能しません。

于 2016-03-21T19:53:34.013 に答える
0

Fermi での DirectX 12 の最初のサポートは、現在の R384.76 で導入されました。これは、Guru3D のユーザーによってここここで確認されていますが、ドライバーのリリース ノートには記載されていません。

これを確認するには、 3DMark Time Spyまたは同様の DirectX 12 ワークロードを実行することをお勧めします。

于 2017-07-01T15:24:00.520 に答える