gpt4 book ai didi

c++ - 如何在 DirectX 11 应用程序中提供选择图形适配器的选项?

转载 作者:搜寻专家 更新时间:2023-10-31 00:54:47 26 4
gpt4 key购买 nike

我想我知道它应该如何工作——只是它没有。我有一台带 860m 和 intel 集成卡的 lenovo 笔记本电脑。

我可以使用两个 gpu 从外部运行我的应用程序,并且一切正常:所选的 gpu 将是索引为 0 的适配器,它具有笔记本电脑屏幕作为输出等。

但是,如果我尝试使用索引为 1 的适配器(如果我正常运行应用程序,那就是 nvidia,如果我用 nvidia gpu 运行它,那就是 intel),IDXGIOutput::EnumOutputs 找不到任何东西,所以我无法正确配置显示设置。

我正在考虑简单地跳过配置,或者使用其他适配器的输出——但是没有办法过滤掉没有实际输出的适配器——例如我的电脑也有一个集成卡,但它没有物理连接的显示器,所以应该不可能使用它。

我还试图找到“使用图形处理器运行”上下文菜单按钮的确切功能,但我找不到任何东西。

目标是让用户能够在应用程序中选择适配器,他/她的选择被保存到配置文件中,并在重启后使用 - 但我找不到过滤可能的适配器的方法。

最佳答案

您可能有一个“异构适配器”系统(又名 NVIDIA Optimus 或 AMD PowerXPress)。这些解决方案让驱动程序操纵默认适配器和设备枚举来控制使用哪个卡。您确实对此没有任何编程控制,但您可以将一些东西注入(inject)您的 Win32“经典”桌面应用程序,这将鼓励驱动程序选择离散部分:

// Indicates to hybrid graphics systems to prefer the discrete part by default
extern "C"
{
__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
}

更新 在 Windows 10 April 2018 Update (17134) 或更高版本中,您可以使用 DXGI 1.6 接口(interface) EnumAdapterByGpuPreference。参见 GitHub一些示例用法。

关于c++ - 如何在 DirectX 11 应用程序中提供选择图形适配器的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44174859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com