Building PyQt6 with GLES

Phil Thompson phil at riverbankcomputing.com
Wed Jul 14 22:22:56 BST 2021


On 13/07/2021 18:54, Ben Greiner wrote:
> Am 13.07.21 um 18:29 schrieb Phil Thompson:
>> On 13/07/2021 16:59, Ben Greiner wrote:
>>> Hi,
>>> 
>>> we currently get a failure while trying to build PyQt6 for aarch64 on
>>> openSUSE distributions. Qt6 for ARM has opengles2 enabled.
>>> 
>>> 
>>> 
>>> 
>>> Mesa-libGLESv3-devel-21.1.4
>>> Mesa-libGLESv2-devel-21.1.4
>>> 
>>> Qt6 6.1.2
>>> SIP v 6.1.1
>>> PyQt-builder 1.10.3
>>> 
>>> 
>>> Full build log for openSUSE Tumbleweed on aarch64 (Python 3.9):
>>> https://susepaste.org/6003158 <https://susepaste.org/6003158>
>>> Full build log for openSUSE Leap 15.3 on aarch64 (Python 3.6):
>>> https://susepaste.org/65317120 <https://susepaste.org/65317120>
>>> 
>>> 
>>> Any hint what is going wrong?
>> 
>> It would suggest that cfgtest_QtGui.cpp isn't properly detecting ES2. 
>> What is the contents of the cfgtest_QtGui.out file after the build?
> 
> It is empty.
> 
> [   49s] + grep opengles2 /usr/include/qt6/QtGui/qtgui-config.h
> [   49s] #define QT_FEATURE_opengles2 1
> 
> [  201s] Generating the QtOpenGL bindings...
> [  209s] sip-build-3.9: GLuint64 is undefined
> [  209s]
> [  209s] + ls -l build/cfgtest_QtGui/cfgtest_QtGui.out
> [  209s] -rw-r--r-- 1 abuild abuild 0 Jul 13 17:42
> build/cfgtest_QtGui/cfgtest_QtGui.out
> [  209s] + cat build/cfgtest_QtGui/cfgtest_QtGui.out
> [  209s] + exit 1
> 
> 
> If I understand correctly that's the way it is supposed to be if
> QT_CONFIG(opengles2) is set:
> 
> 
>     // Determine which features should be disabled.
> #if !QT_CONFIG(opengles2)
>     out << "PyQt_OpenGL_ES2\n";
> #if defined(QT_NO_OPENGL)
>     out << "PyQt_OpenGL\n";
> #endif
> #endif
> 
> 
> Note that QtGui bindings with opengl_types.sip are successfully
> generated, but the QtOpenGL bindings fail:
> 
> [ben at skylab:…t6/PyQt6-6.1.1]% grep -a1 GLuint64 sip/QtGui -R
> sip/QtGui/opengl_types.sip-%If (!PyQt_OpenGL_ES2)
> sip/QtGui/opengl_types.sip:typedef quint64 GLuint64;       // This is
> in OpenGL ES v3.
> sip/QtGui/opengl_types.sip-typedef double GLdouble;
> 
> [ben at skylab:…t6/PyQt6-6.1.1]% grep GLuint64 sip/QtOpenGL -R
> sip/QtOpenGL/qpyopengl_qlist.sip:%MappedType QList<GLuint64>
> sip/QtOpenGL/qpyopengl_qlist.sip:    QList<GLuint64> *qv = new 
> QList<GLuint64>;
> sip/QtOpenGL/qopengltimerquery.sip:    GLuint64 waitForTimestamp()
> const /ReleaseGIL/;
> sip/QtOpenGL/qopengltimerquery.sip:    GLuint64 waitForResult() const
> /ReleaseGIL/;
> sip/QtOpenGL/qopengltimerquery.sip:    QList<GLuint64>
> waitForSamples() const /ReleaseGIL/;
> sip/QtOpenGL/qopengltimerquery.sip:    QList<GLuint64>
> waitForIntervals() const /ReleaseGIL/;

Hopefully fixed in the current snapshot.

Thanks,
Phil


More information about the PyQt mailing list