I added a section that enumerates DXGI adapters with the help IDXGIFactory6::EnumAdapterByGpuPreference
– this is included into the produced output.
Unfortunately the method does not distinguish between dual GPU systems, such as with discrete GPU and additional CPU integrated Intel GPU…
DXGI Capabilities NOTE: Baseline capabilities are corresponding to DXGI 1.1 Windowed Stereo: 0 DXGI_FEATURE_PRESENT_ALLOW_TEARING: 1 Adapters by Preference: DXGI_GPU_PREFERENCE_UNSPECIFIED: Radeon RX 570 Series (0.0x0000D18A), Intel(R) UHD Graphics 630 (0.0x8E94827B), Microsoft Basic Render Driver (0.0x0000D163) DXGI_GPU_PREFERENCE_MINIMUM_POWER: Intel(R) UHD Graphics 630 (0.0x8E94827B), Radeon RX 570 Series (0.0x0000D18A), Microsoft Basic Render Driver (0.0x0000D163) DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE: Radeon RX 570 Series (0.0x0000D18A), Intel(R) UHD Graphics 630 (0.0x8E94827B), Microsoft Basic Render Driver (0.0x0000D163) Factory Interfaces: IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2, IDXGIFactory3, IDXGIFactory4, IDXGIFactory5, IDXGIFactory6, IDXGIFactory7, IDXGIDisplayControl Adapters Radeon RX 570 Series Intel(R) UHD Graphics 630
…and hybrid systems such as NVIDIA Optimus and AMD PowerXpress. Those from AMD seem to be discontinued and AMD is traditionally provides zero helpful feedback to developers (although NVIDIA is not any better).
However this time I might have spotted something interesting. On an NVIDIA hybrid system when an app is executed on iGPU, the output is this (expected):
DXGI Capabilities NOTE: Baseline capabilities are corresponding to DXGI 1.1 Windowed Stereo: 0 DXGI_FEATURE_PRESENT_ALLOW_TEARING: 1 Adapters by Preference: DXGI_GPU_PREFERENCE_UNSPECIFIED: Intel(R) HD Graphics 520 (0.0x00010765), NVIDIA GeForce 940MX (0.0x00010A9D), Microsoft Basic Render Driver (0.0x00010A66) DXGI_GPU_PREFERENCE_MINIMUM_POWER: Intel(R) HD Graphics 520 (0.0x00010765), NVIDIA GeForce 940MX (0.0x00010A9D), Microsoft Basic Render Driver (0.0x00010A66) DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE: NVIDIA GeForce 940MX (0.0x00010A9D), Intel(R) HD Graphics 520 (0.0x00010765), Microsoft Basic Render Driver (0.0x00010A66) Factory Interfaces: IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2, IDXGIFactory3, IDXGIFactory4, IDXGIFactory5, IDXGIFactory6, IDXGIFactory7, IDXGIDisplayControl Adapters Intel(R) HD Graphics 520 NVIDIA GeForce 940MX [...] Output Protection Manager (OPM Semantics) Certificate Subject: IntelVpgOpm2011 OPM_GET_OUTPUT_ID: OutputId 0x0000000000040F04 OPM_GET_ADAPTER_BUS_TYPE: ulInformation OPM_BUS_TYPE_OTHER | OPM_BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET | OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED OPM_GET_CONNECTOR_TYPE: ulInformation OPM_CONNECTOR_TYPE_DISPLAYPORT_EMBEDDED [...] Output Duplication Direct3D 11 Feature Level: D3D_FEATURE_LEVEL_11_1; https://msdn.microsoft.com/en-us/library/windows/desktop/ff476876#Overview Mode Description: Width: 1Â 920 Height: 1Â 080 Refresh Rate: 138Â 500Â 000/2Â 310Â 880 (59,934) Format: DXGI_FORMAT_B8G8R8A8_UNORM Scanline Ordering: DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE Scaling: DXGI_MODE_SCALING_UNSPECIFIED Rotation: DXGI_MODE_ROTATION_IDENTITY Desktop Image In System Memory: 0
However, when the app is started on dGPU, adapter enumeration order is expectedly changed, and also Desktop Duplication API is dysfunctional as documented here: Error generated when Desktop Duplication API-capable application is run against discrete GPU, but…
DXGI Capabilities NOTE: Baseline capabilities are corresponding to DXGI 1.1 Windowed Stereo: 0 DXGI_FEATURE_PRESENT_ALLOW_TEARING: 1 Adapters by Preference: DXGI_GPU_PREFERENCE_UNSPECIFIED: NVIDIA GeForce 940MX (0.0x00010A9D), Intel(R) HD Graphics 520 (0.0x00010765), Microsoft Basic Render Driver (0.0x00010A66) DXGI_GPU_PREFERENCE_MINIMUM_POWER: Intel(R) HD Graphics 520 (0.0x00010765), NVIDIA GeForce 940MX (0.0x00010A9D), Microsoft Basic Render Driver (0.0x00010A66) DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE: NVIDIA GeForce 940MX (0.0x00010A9D), Intel(R) HD Graphics 520 (0.0x00010765), Microsoft Basic Render Driver (0.0x00010A66) Factory Interfaces: IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2, IDXGIFactory3, IDXGIFactory4, IDXGIFactory5, IDXGIFactory6, IDXGIFactory7, IDXGIDisplayControl Adapters NVIDIA GeForce 940MX Intel(R) HD Graphics 520 [...] Output Protection Manager (OPM Semantics) Certificate Subject: IntelVpgOpm2011 OPM_GET_OUTPUT_ID: OutputId 0x0000000000040F04 OPM_GET_ADAPTER_BUS_TYPE: ulInformation OPM_BUS_TYPE_OTHER | OPM_BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET | OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED OPM_GET_CONNECTOR_TYPE: ulInformation OPM_CONNECTOR_TYPE_DISPLAYPORT_EMBEDDED [...] Output Duplication Exception: Указанный Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑƒÑтройÑтва или уровень компонента не поддерживаетÑÑ Ð² данной ÑиÑтеме (0x887A0004; DXGI_ERROR_UNSUPPORTED); https://support.microsoft.com/en-ie/help/3019314/error-generated-when-desktop-duplication-api-capable-application-is-ru
…here is the news: NVIDIA DXGI adapter is enumerated with Intel OPM certificate… What a find!
Download links
- Binaries:
- 32-bit: MediaFoundationDxgiCapabilities-Win32.exe
- 64-bit: MediaFoundationDxgiCapabilities-x64.exe
- License: This software is free to use