Gam*_*deR 3 c++ gpu directx-11 display
我想我知道它应该如何工作 - 只有它没有。我有一台带有 860m 和英特尔集成卡的联想笔记本电脑。
我可以使用两个 gpu 从外部运行我的应用程序,一切正常:选定的 gpu 将是索引为 0 的适配器,它具有笔记本电脑屏幕作为输出等。
但是,如果我尝试使用索引为 1 的适配器(如果我正常运行应用程序,那就是 nvidia,如果我使用 nvidia gpu 运行它,那就是英特尔),IDXGIOutput::EnumOutputs 找不到任何东西,所以我无法正确配置显示设置。
我正在考虑简单地跳过配置,或者使用其他适配器的输出 - 但是没有办法过滤掉没有实际输出的适配器 - 例如我的电脑也有一个集成卡,但它没有物理连接的显示器,所以使用它应该是不可能的。
我还试图找到“使用图形处理器运行”上下文菜单按钮的确切功能,但我找不到任何东西。
目标是让用户能够在应用程序内选择适配器,他/她的选择被保存到配置文件中,并在重新启动后使用 - 但我找不到过滤可能的适配器的方法。
您可能有一个“异构适配器”系统(又名 NVIDIA Optimus 或 AMD PowerXPress)。这些解决方案让驱动程序操纵默认适配器和设备枚举来控制使用哪个卡。您确实对此没有任何编程控制,但是您可以将某些内容注入到您的 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;
}
Run Code Online (Sandbox Code Playgroud)
更新使用 Windows 2018 年 4 月 10 日更新 (17134) 或更高版本,您可以使用 DXGI 1.6 界面EnumAdapterByGpuPreference。有关一些示例用法,请参阅GitHub。
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |