OpenGL和多GPU-一般可能性

OpenGL和多GPU-一般可能性,opengl,gpu,sharing,openglcontext,Opengl,Gpu,Sharing,Openglcontext,我想知道,是否可以在多个GPU上同时运行多窗口OpenGL应用程序?更具体地说,假设我创建了一个应用程序,其中两个窗口彼此共享它的GL上下文。现在,如果我将其中一个窗口从Display1(在GPU1上运行)移动到Display2(在GPU2上运行),这真的可以工作吗?仅仅共享上下文就能奏效吗 我的第一个猜测是否定的。如果这真的不是那么简单,有没有办法做到这一点?我还可以想象,这取决于两个GPU是否由同一个驱动程序控制(或者更糟糕的是,让机器有一个ATI和一个nVidia卡,两者都支持不同的GL版

我想知道,是否可以在多个GPU上同时运行多窗口OpenGL应用程序?更具体地说,假设我创建了一个应用程序,其中两个窗口彼此共享它的GL上下文。现在,如果我将其中一个窗口从Display1(在GPU1上运行)移动到Display2(在GPU2上运行),这真的可以工作吗?仅仅共享上下文就能奏效吗

我的第一个猜测是否定的。如果这真的不是那么简单,有没有办法做到这一点?我还可以想象,这取决于两个GPU是否由同一个驱动程序控制(或者更糟糕的是,让机器有一个ATI和一个nVidia卡,两者都支持不同的GL版本)

我将非常感谢对这个话题的任何见解,纯粹是信息性的,因为我在谷歌上快速搜索后找不到任何东西。有人知道这种可能性吗

编辑:顺便说一下,不幸的是,我目前没有一台配备多个GPU的机器,所以我会进行一点测试。

简短回答:是的

长答覆: Windows/Mac OS X:Windows始终由一个GPU更新,并且可能会将像素复制到另一个GPU

Linux:如果Xinerama处于关闭状态,则无法在屏幕之间移动窗口(GPU)。如果辛耳阿玛在,Irc至少英伟达驱动程序同时向GPU发送GL命令,这样你就可以移动它们。
有一些方法可以通过编程控制GPU选择和GPU-GPU拷贝。更多信息。

谢谢您的回答!常见问题解答回答了我的很多问题。我对上下文共享的想法似乎是错误的。根据常见问题解答,无法跨多条管线共享上下文,因此在其他GPU上不可用。你是对的,OS X除外。如果你在OS X上,我强烈推荐上一次WWDC的多GPU对话。