我使用GLFW3创建了一个窗口。我使用GLX的另一个线程创建了一个子窗口。在GLX opengl上下文创建期间,我将主窗口opengl上下文(由glXGetCurrentContext
实现)作为sharelist
参数传递给子窗口的opengl上下文,因为我想使用渲染的纹理由主窗口中的子上下文。但是我收到了这个错误:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Serial number of failed request: 38
Current serial number in output stream: 39
正如我在glxCreateContext
文档中看到的那样,
如果要创建的上下文不共享,则生成BadMatch 地址空间或shareList指定的上下文屏幕。
那么,这是否意味着我无法与此上下文共享纹理?
答案 0 :(得分:0)
所以,我刚才注意到了问题所在。由于GL Contexts中的一个在一个GPU上而另一个在另一个GPU上,因此我似乎无法彼此共享显示对象。因此,我必须使用glXCopyImageSubDataNV
将纹理从一个gpu复制到另一个gpu。