5

我想知道,是否可以同时在多个 GPU 上运行多窗口 OpenGL 应用程序?更具体地说,假设我创建了一个应用程序,其中有两个窗口,每个窗口都在彼此之间共享它的 GL 上下文。现在,如果我将其中一个窗口从显示器 1(在 GPU 1 上运行)移动到显示器 2(在 GPU 2 上运行),这真的可行吗?仅共享上下文就可以解决问题吗?

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

我将不胜感激有关此主题的任何见解,纯粹是信息性的,因为在快速谷歌搜索后我找不到任何东西。有谁知道可能性?

编辑:顺便说一句,不幸的是,我目前没有一台具有多个 GPU 的机器,所以我会稍微测试一下。

4

1 回答 1

6

简短的回答:是的。

长答案:Windows/Mac OS X:窗口总是由一个 GPU 更新,并且可能将像素复制到另一个 GPU。

Linux:如果 Xinerama 关闭,则无法在屏幕 (GPU) 之间移动窗口。如果 Xinerama 已打开,iirc 至少 nVidia 驱动程序会同时向两个 GPU 发送 GL 命令,以便您可以移动它们。

有多种方法可以以编程方式控制 GPU 选择和 GPU-GPU 副本。更多信息在这里

于 2011-09-25T11:26:31.417 回答