library/src/Adapter.h (19 lines of code) (raw):
#pragma once
// Represents a DirectX adapter as enumerated by DXCore
// (For additional details, see: <https://docs.microsoft.com/en-us/windows/win32/dxcore/dxcore_interface/ne-dxcore_interface-dxcoreadapterproperty>)
struct Adapter
{
inline Adapter() :
InstanceLuid(0),
IsHardware(false),
IsIntegrated(false),
IsDetachable(false),
SupportsDisplay(false),
SupportsCompute(false)
{}
// The locally unique identifier (LUID) for the adapter
int64_t InstanceLuid;
// The PnP hardware ID information for the adapter
DXCoreHardwareID HardwareID;
// Specifies whether the adapter is a hardware device (as opposed to a software device)
bool IsHardware;
// Specifies whether the adapter is an integrated GPU (as opposed to a discrete GPU)
bool IsIntegrated;
// Specifies whether the adapter is a detachable device (i.e. the device can be removed at runtime)
bool IsDetachable;
// Specifies whether the adapter supports display
// (i.e. supports either the DXCORE_ADAPTER_ATTRIBUTE_D3D11_GRAPHICS or DXCORE_ADAPTER_ATTRIBUTE_D3D12_GRAPHICS attributes)
bool SupportsDisplay;
// Specifies whether the adapter supports compute (i.e. supports the DXCORE_ADAPTER_ATTRIBUTE_D3D12_CORE_COMPUTE attribute)
bool SupportsCompute;
};