在 Windows + opengl 中选择一个图形设备

Select a graphic device in windows + opengl

本文关键字:一个 图形设备 选择 Windows opengl      更新时间:2023-10-16

我知道如何使用openGL打开窗口(使用Win32或其他工具包)。但是当系统有 2 个显卡时。如何选择要渲染的图形设备?我的编程语言C++,我专注于Windows,但欢迎任何示例。

编辑:也许更好地解释我的问题是个好主意,以添加一些观点:我的新笔记本电脑有两个显卡。集成的Intel HD和GeForce GT 540M。英特尔卡大部分时间都在渲染 SO,因为它可以节省电池。當遊戲啟動時,GeForce 會自動啟動。这个系统被英伟达称为"擎天柱"(http://www.nvidia.com/object/optimus_technology.html)。问题是,当我启动应用程序时,检测到的 de opengl 驱动程序是 2.1,供应商是英特尔,我不知道如何切换到其他设备。

最后我找到了这些信息。如果您不使用 nvidia,它不会太有用,但我让它给任何可以阅读 http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUDA_Developer_Guide_for_Optimus_Platforms.pdf 的人

最简单的解决方案是将此代码片段粘贴到应用程序中的某个位置。这将告诉 Nvidia 和 AMD 驱动程序在您的应用程序启动时切换到强大的 GPU。

// enable optimus!
extern "C" {
    _declspec(dllexport) DWORD NvOptimusEnablement = 1;
    _declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
}

编辑:添加AMD关键字

> 我不是 100% 确定,但我似乎记得在 Windows 下这是不可能的,除了在特定屏幕上创建一个窗口。

NVidia提供了一个名为WGL_NV_gpu_affinity的扩展。我不确定这是否仍然可用以及它是否按您想要的方式工作。

编辑:

我看到另一个线程中已经提供了类似的信息,并带有指向此 PDF 的附加链接。也许不是一个令人满意的答案,但至少有一些信息。

转到 Nvidia 控制面板>管理 3D 设置>选择首选图形处理器。默认情况下,您可以看到自动选择。将其更改为所需的 GPU。

您应该使用WGL_NV_gpu_affinity扩展来使用OpenGL进行多个GPU编程。(以防万一,英伟达卡)。但它仅在 QUADRO 系列上受支持。所以不幸的是,您无法在系统上选择渲染显卡。