Совместное использование текстуры между двумя контекстами opengl

Я создал окно с помощью 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.

Значит ли это, что я не могу поделиться текстурой с этим контекстом?


person mmostajab    schedule 12.08.2015    source источник


Ответы (1)


Итак, я только что заметил, в чем проблема. Поскольку один из контекстов GL находится на одном графическом процессоре, а другой - на другом графическом процессоре, кажется, что я не могу делиться объектами отображения друг с другом. Итак, я должен использовать glXCopyImageSubDataNV для копирования текстуры с одного GPU на другой.

person mmostajab    schedule 12.08.2015
comment
Вы когда-нибудь заставляли это работать? glXCopyImageSubDataNV у меня постоянно вылетает :( - person Charles Lohr; 22.12.2019