From c4a10aae14aafadc267bb32a2edb53185ced008f Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Thu, 5 Dec 2019 22:31:26 -0800 Subject: Added ADAPTER_TYPE enum and AdapterType member to AdapterAttribs struct (API version 240043) --- .../include/EngineFactoryD3DBase.h | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'Graphics/GraphicsEngineD3DBase') diff --git a/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h b/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h index a13379a7..eda702b1 100644 --- a/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h +++ b/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h @@ -43,9 +43,9 @@ public: {} - virtual void EnumerateHardwareAdapters(DIRECT3D_FEATURE_LEVEL MinFeatureLevel, - Uint32& NumAdapters, - HardwareAdapterAttribs* Adapters) override final + virtual void EnumerateAdapters(DIRECT3D_FEATURE_LEVEL MinFeatureLevel, + Uint32& NumAdapters, + AdapterAttribs* Adapters) override final { auto DXGIAdapters = FindCompatibleAdapters(MinFeatureLevel); @@ -61,6 +61,8 @@ public: pDXIAdapter->GetDesc1(&AdapterDesc); auto& Attribs = Adapters[adapter]; + + Attribs.AdapterType = (AdapterDesc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) ? ADAPTER_TYPE_SOFTWARE : ADAPTER_TYPE_HARDWARE; WideCharToMultiByte(CP_ACP, 0, AdapterDesc.Description, -1, Attribs.Description, _countof(Attribs.Description), NULL, FALSE); Attribs.DedicatedVideoMemory = AdapterDesc.DedicatedVideoMemory; Attribs.DedicatedSystemMemory = AdapterDesc.DedicatedSystemMemory; @@ -148,19 +150,14 @@ public: return std::move(DXGIAdapters); } - auto d3dFeatureLevel = GetD3DFeatureLevel(MinFeatureLevel); CComPtr pDXIAdapter; - UINT adapter = 0; + + auto d3dFeatureLevel = GetD3DFeatureLevel(MinFeatureLevel); + UINT adapter = 0; for (; pFactory->EnumAdapters1(adapter, &pDXIAdapter) != DXGI_ERROR_NOT_FOUND; ++adapter, pDXIAdapter.Release()) { DXGI_ADAPTER_DESC1 AdapterDesc; pDXIAdapter->GetDesc1(&AdapterDesc); - if (AdapterDesc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE) - { - // Skip software devices - continue; - } - bool IsCompatibleAdapter = CheckAdapterCompatibility(pDXIAdapter, d3dFeatureLevel); if (IsCompatibleAdapter) { -- cgit v1.2.3