[Interest] Sharing texture between QOpenGLContext and native OpenGL context doesn't work with MESA driver

Stefan Fabian stefan.fabian.dev at hotmail.com
Wed Mar 13 23:35:42 CET 2019


I've been rendering Qt and QML into a texture and the resulting texture is rendered on top of the 3D scene of an existing application.
Code from quick experiments using only Qt can be found here https://github.com/StefanFabian/rviz_experiments/tree/master/qt_rviz_overlay<https://github.com/StefanFabian/rviz_experiments>
This works fine on my Desktop with an NVidia GPU, however, it doesn't work on my Notebook using an integrated graphics card and MESA drivers.
I've done some debugging and found that the content of the texture, while the QOpenGLContext is active, is as expected but when I call doneCurrent() and make the native context current again, the texture becomes a texture of the same size but the content is just empty with spots of what looks like uninitialized memory.
Any idea what could cause this and how I can get around this issue with the least performance impact possible (Downloading the texture and uploading it to the native context would come to my mind but that'd be horrible with regards to performance)?

Qt Version: 5.5.1
Desktop: NVidia GTX 1080 with OpenGL version 4.6 (GSLS 4.6)
Notebook: i7 8550U with OpenGL version 3 (GLSL 1.3)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20190313/44eb62c9/attachment.html>

More information about the Interest mailing list