如何选择默认图形适配器?Windows默认规则及用户设置方法
D3D11默认适配器的选择逻辑与修改方法
Windows如何选择默认适配器?
Windows选择默认显示适配器的核心逻辑是优先选取性能最高的独立显卡:
- 当系统中有多个独立显卡时,通常以硬件性能参数(显存、核心频率等)为依据,挑性能最强的那个作为默认;如果性能接近,可能参考驱动安装顺序、PCIe插槽优先级(比如靠近CPU的插槽优先级更高)。
- 只有当系统中无可用独立显卡,或所有独立显卡被禁用时,才会将CPU集成显卡设为默认适配器。
对应你提到的用户场景(2个独立显卡+1个集成显卡),默认适配器大概率是性能最强的那台独立显卡。
用户如何修改默认适配器设置?
用户可通过两种方式修改,分别对应全局默认和单程序指定:
1. 设置全局默认显卡
- 打开Windows「设置」→「系统」→「显示」→「高级显示设置」,点击「显示适配器属性」;
- 在弹出的显卡控制面板(NVIDIA控制面板/AMD Radeon设置/Intel显卡控制面板,依显卡品牌而定)中,找到「全局设置」选项,直接选择想要设为默认的适配器即可。
2. 为特定程序指定适配器
如果用户只想让你的软件使用特定显卡,而非全局修改:
- 打开对应品牌的显卡控制面板,找到「程序设置」(NVIDIA为「管理3D设置」→「程序设置」,AMD为「游戏」→「游戏配置文件」);
- 点击「添加」,找到你的软件可执行文件,然后在「为此程序选择首选图形处理器」下拉菜单中,选择目标适配器(另一台独立显卡或集成显卡),保存设置即可。
额外建议:在软件中添加适配器选择功能
若想从根本上满足用户需求,可修改代码让用户在软件内直接选择适配器:
- 通过
IDXGIFactory1::EnumAdapters枚举系统中所有可用适配器; - 将枚举到的适配器信息(名称、性能参数等)展示给用户选择;
- 将用户选中的
IDXGIAdapter指针传入D3D11CreateDevice的第一个参数,即可创建对应适配器的设备。
示例代码片段:
// 创建IDXGIFactory1 IDXGIFactory1* pFactory = nullptr; HRESULT hr = CreateDXGIFactory1(__uuidof(IDXGIFactory1), (void**)&pFactory); if (SUCCEEDED(hr)) { IDXGIAdapter* pAdapter = nullptr; UINT i = 0; // 枚举所有适配器 while (pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND) { DXGI_ADAPTER_DESC desc; pAdapter->GetDesc(&desc); // 这里可将desc.Description展示给用户选择 i++; pAdapter->Release(); } pFactory->Release(); } // 用户选择后,将对应的pAdapter传入D3D11CreateDevice
内容的提问来源于stack exchange,提问作者Soonts
相关产品推荐
相关产品推荐

