2015-05-08 38 views
1

我已經實現了一個應用程序,我使用OpenCL內核在兩個不同的GPU上生成兩個幾何圖形。我想在兩個不同的GPU上同時渲染這些幾何圖形,然後合併最終的圖像。我如何確定我想要使用OpenGL API在第一個GPU上渲染第一個幾何圖形並在第二個GPU上渲染第二個幾何圖形?使用兩個GPU同時繪製OPENGL

回答

1

那麼,由於用於創建OpenGL上下文的系統級API缺少設備枚舉和選擇,唯一或多或少可靠的方法是在連接到所需GPU的屏幕邊界內創建一個窗口,並使用OpenGL上下文創建該窗口的HDC(儘管它在可見的屏幕的邊界內,以便真正強制驅動程序); 1×1無邊界窗口就足夠了。

如果您的顯示器僅連接到一個GPU,那麼您運氣不好。抱歉。

+0

但是,這對我來說似乎很愚蠢,以至於不可能同時使用兩種不同的設備,因爲我們可以很容易地使用opencl/cuda內核來做到這一點,但這只是太多工作,而且我希望找到更快,更簡單辦法。 – mmostajab

+1

@mmostajab:是的,這完全是愚蠢的,但不是OpenGL的錯。這是設計系統圖形API(WGL,GLX等)的操作系統開發人員的錯。至少在使用開源驅動程序的Linux中,可以繞過這一點,但這需要很多工作,而且難以正確工作並且工作可靠。 – datenwolf

+0

因此,如果我有兩個顯示器並將它們連接到每個GPU,則我在Display 0中的窗口中渲染的東西將在GPU 0上渲染,並且顯示器1中顯示的窗口將渲染到GPU 1上? 如果我們將一個窗口從Display 0移動到Display 1,我們將計算從GPU 0移動到GPU 1? – mmostajab