Я использую Qt5 для рендеринга за пределами экрана и имею ошибку сегментации при работе внутри Docker.
У меня есть код внутри c++
и вызов функции через python
с использованием pybind11
Это код, вызывающий segfault
QSurfaceFormat glFormat;
glFormat.setVersion(3, 3);
glFormat.setProfile(QSurfaceFormat::CoreProfile);
glFormat.setRenderableType(QSurfaceFormat::OpenGL);
surface = new QOffscreenSurface();
surface->setFormat(glFormat);
surface->create(); // <-- Here
Точная ошибка:
QObject::connect: Cannot connect (null)::destroyed(QObject*) to QOffscreenSurface::screenDestroyed(QObject*)
Пробовал запускать через xvfb-run -a python prg.py
и получил ту же ошибку
Любые указатели для отладки этого?
Немного больше контекста проблемы: приведенный выше код отлично работает, если я использую его внутри основного потока, обернутого в QApplication
. Эта проблема возникает только тогда, когда я перемещаю ее внутри функции, чтобы я мог вызвать ее внутри python.