OpenGL errors when updating app from Qt 5.12 to 5.15/6.x on Android
Unsolved
General and Desktop
-
I have an app which has been working fine on Qt 5.12 for a number of months, but attempting to update it to Qt 5.15 or 6.x is throwing a lot of OpenGL errors on Android, while it still builds fine on both Windows and Linux.
The compilation fails when including the header for my QOpenGLWidget subclass:
In file included from C:/Qt/5.15.2/android/include/QtWidgets\QOpenGLWidget:1: In file included from C:/Qt/5.15.2/android/include/QtWidgets/qopenglwidget.h:49: In file included from C:/Qt/5.15.2/android/include\QtGui/qopengl.h:127: C:/Qt/5.15.2/android/include\QtGui/qopengles2ext.h:89:15: error: expected ')' typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); ^ C:/Qt/5.15.2/android/include\QtGui/qopengles2ext.h:57:33: note: expanded from macro 'GL_APIENTRYP' #define GL_APIENTRYP GL_APIENTRY* ^ C:/Qt/5.15.2/android/include\QtGui/qopengles2ext.h:89:14: note: to match this '(' typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); ^ C:/Qt/5.15.2/android/include\QtGui/qopengles2ext.h:108:28: error: expected ')' typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); ^ C:/Qt/5.15.2/android/include\QtGui/qopengles2ext.h:108:14: note: to match this '(' typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); ^ C:/Qt/5.15.2/android/include\QtGui/qopengles2ext.h:108:15: error: typedef redefinition with different types ('void (GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *, const void *)' (aka 'void (unsigned int, unsigned int, unsigned int, unsigned int, int, const char *, const void *)') vs 'void ()') typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); ^ C:/Qt/5.15.2/android/include\QtGui/qopengles2ext.h:89:15: note: previous definition is here typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); ^
I get dozens of typedef errors just like the one above, but looking at the qopengles2ext.h file, the contents are mostly the same between 5.12 / 5.15 / 6.x, and the errors are all referring to typedefs that exist in both versions, not any new or modified ones.