在 Windows + opengl 中选择一个图形设备
Select a graphic device in windows + opengl
我知道如何使用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 系列上受支持。所以不幸的是,您无法在系统上选择渲染显卡。
- WINUSB_ControlTransfer只能在设备上可用的两个接口中的一个上使用,而不能在另一个接口上使用
- 是否可以在同一设备缓冲区上一个接一个地调用 OpenCL 内核?
- 需要使用boost ::图形从一个大图中找到子图
- 将两个不同的设备捕获框架组合到一个框架中,然后写一个视频
- 使用C++将流量转发到另一个设备
- 我正在尝试为 Kruskal 算法实现一个C++程序,该程序需要我按权重对图形进行排序。如何按权重对结构进行排序
- CreateFile打开在另一个终端会话中创建的MS-DOS设备
- 从一个起点遍历一个图形,并在起点C++处结束
- 将一个蓝牙设备连接为多个设备
- 将一个简单的Qt程序移植并运行到FriendlyARM嵌入式设备
- CUDA推力:从一个设备复制到另一个设备
- C++图形API带有一个小的学习曲线-linux
- 将资源从一个D3D11设备复制到另一个设备
- C++:图形 ADT 应该有一个顶点列表和一个边列表,或者只是带有指向其他顶点的指针的顶点
- 包含一个图形节点作为关键字的无序映射
- 一个c++图形数据结构的并发垃圾收集
- 在c++(适用于Arduino)中可以编译在数据中生成一个图形文件
- 在ubuntu上运行cuda -它是否需要一个本地设备驱动程序(使用nvidia显卡)
- 在 Windows + opengl 中选择一个图形设备
- 在升压接收和源在一个文件设备