0

我使用 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文档中看到的,

如果要创建的上下文不共享地址空间或由 shareList 指定的上下文的屏幕,则会生成 BadMatch。

那么,这是否意味着我不能与这个上下文共享纹理?

4

1 回答 1

0

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

于 2015-08-12T16:00:31.000 回答