在两个opengl上下文之间共享纹理

时间:2015-08-12 14:42:49

标签: opengl glx

我使用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指定的上下文屏幕。

那么,这是否意味着我无法与此上下文共享纹理?

1 个答案:

答案 0 :(得分:0)

所以,我刚才注意到了问题所在。由于GL Contexts中的一个在一个GPU上而另一个在另一个GPU上,因此我似乎无法彼此共享显示对象。因此,我必须使用glXCopyImageSubDataNV将纹理从一个gpu复制到另一个gpu。