Graphics 我如何知道amd图形卡是否专用于d3d11(或dxgi)?

Graphics 我如何知道amd图形卡是否专用于d3d11(或dxgi)?,graphics,directx,dxgi,dedicated,Graphics,Directx,Dxgi,Dedicated,我尝试使用图形卡来进行一些繁重的计算(直接计算),我希望它只能通过专用图形卡启用,因为集成图形卡对我的程序来说太弱了。 我使用DXGI获得了以下信息: typedef struct DXGI_ADAPTER_DESC { WCHAR Description[128]; UINT VendorId; UINT DeviceId; UINT SubSysId; UINT Revision; SIZE_T DedicatedVideoMemory; SIZ

我尝试使用图形卡来进行一些繁重的计算(直接计算),我希望它只能通过专用图形卡启用,因为集成图形卡对我的程序来说太弱了。 我使用DXGI获得了以下信息:

typedef struct DXGI_ADAPTER_DESC {
  WCHAR  Description[128];
  UINT   VendorId;
  UINT   DeviceId;
  UINT   SubSysId;
  UINT   Revision;
  SIZE_T DedicatedVideoMemory;
  SIZE_T DedicatedSystemMemory;
  SIZE_T SharedSystemMemory;
  LUID   AdapterLuid;
} DXGI_ADAPTER_DESC;

对于NVidia和Intel的图形卡,我可以使用VendorID来实现这一点。但我怎么知道它是不是AMD图形卡的专用图形卡,因为AMD同时生产dGPU和iGPU。

您应该查询设备的DirectCompute功能,以确定它的功能有多强大。@Roman R.谢谢。事实上我是这么做的,但对于我的程序来说,一些具有Direct Compute功能5.0的iGPU仍然太弱。我正在寻找一种方法来区分iGPU和dGPU,限制着色器num是另一种选择。但是我不知道是否有更好的选择。您可以使用
DXGIFactory6
中的
EnumAdapterByGpuPreference
来获得最高性能的可用适配器。它不区分AMD卡,但至少你会知道你得到的第一个适配器是最好的适配器。@rashmatash支持的最小客户端是Windows 10,考虑到我的用户(其中一些用户使用Win8或Win7),也许我需要找到一个折衷方案,比如限制shader num或其他。真的很欣赏你的想法!