Archived issue #0032435
Visualization, TKOpenGles - crash inside Opengl ES on Adreno 506 android devices
Description
Latest updated to OCCT7.5.2, New crash from google play console. It seems the crash inside opengl es. The stacktrace as below:
Affected device:
Samsung Galaxy A20s, Android 10 (SDK 29)
Xiaomi Redmi 7, Android 10 (SDK 29)
#00 pc [revision removed] /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+296)
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc 0000000000102680 /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_PrimitiveArray::drawArray(opencascade::handle<OpenGl_Workspace> const&, NCollection_Vec4<float> const*, bool) const+436)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_PrimitiveArray::Render(opencascade::handle<OpenGl_Workspace> const&) const+1804)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_Group::Render(opencascade::handle<OpenGl_Workspace> const&) const+212)
#00 pc 0000000001395608 /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_Structure::renderGeometry(opencascade::handle<OpenGl_Workspace> const&, bool&) const+108)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_Structure::Render(opencascade::handle<OpenGl_Workspace> const&) const+1428)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_LayerList::renderLayer(opencascade::handle<OpenGl_Workspace> const&, OpenGl_GlobalLayerSettings const&, Graphic3d_Layer const&) const+988)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_LayerList::Render(opencascade::handle<OpenGl_Workspace> const&, bool, OpenGl_LayerFilter, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*) const+1116)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::renderStructs(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+276)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::renderScene(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+140)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::render(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+1096)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::redraw(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*)+556)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::Redraw()+1408)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (V3d_View::Redraw() const+108)
#00 pc [revision removed] /apex/com.android.runtime/lib/bionic/libc.so (__memcpy_a53+108)
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so (glDrawElements+42)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_PrimitiveArray::drawArray(opencascade::handle<OpenGl_Workspace> const&, NCollection_Vec4<float> const*, bool) const+274)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_PrimitiveArray::Render(opencascade::handle<OpenGl_Workspace> const&) const+858)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Group::renderFiltered(opencascade::handle<OpenGl_Workspace> const&, OpenGl_Element*) const+28)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Group::Render(opencascade::handle<OpenGl_Workspace> const&) const+82)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Structure::renderGeometry(opencascade::handle<OpenGl_Workspace> const&, bool&) const+62)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Structure::Render(opencascade::handle<OpenGl_Workspace> const&) const+696)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_LayerList::renderLayer(opencascade::handle<OpenGl_Workspace> const&, OpenGl_GlobalLayerSettings const&, Graphic3d_Layer const&) const+646)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_LayerList::Render(opencascade::handle<OpenGl_Workspace> const&, bool, OpenGl_LayerFilter, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*) const+618)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::renderStructs(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+178)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::renderScene(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+90)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::render(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+744)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::redraw(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*)+242)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::Redraw()+936)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (V3d_View::Redraw() const+94)
Affected device:
Samsung Galaxy A20s, Android 10 (SDK 29)
Xiaomi Redmi 7, Android 10 (SDK 29)
#00 pc [revision removed] /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+296)
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc 0000000000102680 /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib64/egl/libGLESv2_adreno.so
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_PrimitiveArray::drawArray(opencascade::handle<OpenGl_Workspace> const&, NCollection_Vec4<float> const*, bool) const+436)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_PrimitiveArray::Render(opencascade::handle<OpenGl_Workspace> const&) const+1804)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_Group::Render(opencascade::handle<OpenGl_Workspace> const&) const+212)
#00 pc 0000000001395608 /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_Structure::renderGeometry(opencascade::handle<OpenGl_Workspace> const&, bool&) const+108)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_Structure::Render(opencascade::handle<OpenGl_Workspace> const&) const+1428)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_LayerList::renderLayer(opencascade::handle<OpenGl_Workspace> const&, OpenGl_GlobalLayerSettings const&, Graphic3d_Layer const&) const+988)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_LayerList::Render(opencascade::handle<OpenGl_Workspace> const&, bool, OpenGl_LayerFilter, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*) const+1116)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::renderStructs(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+276)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::renderScene(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+140)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::render(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+1096)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::redraw(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*)+556)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (OpenGl_View::Redraw()+1408)
#00 pc [revision removed] /data/app/com.xxx.xxx-ooz-Ljm7v4ASv-_zr9VF5Q==/lib/arm64/libXXX_arm64-v8a.so (V3d_View::Redraw() const+108)
#00 pc [revision removed] /apex/com.android.runtime/lib/bionic/libc.so (__memcpy_a53+108)
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so
#00 pc [revision removed] /vendor/lib/egl/libGLESv2_adreno.so (glDrawElements+42)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_PrimitiveArray::drawArray(opencascade::handle<OpenGl_Workspace> const&, NCollection_Vec4<float> const*, bool) const+274)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_PrimitiveArray::Render(opencascade::handle<OpenGl_Workspace> const&) const+858)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Group::renderFiltered(opencascade::handle<OpenGl_Workspace> const&, OpenGl_Element*) const+28)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Group::Render(opencascade::handle<OpenGl_Workspace> const&) const+82)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Structure::renderGeometry(opencascade::handle<OpenGl_Workspace> const&, bool&) const+62)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_Structure::Render(opencascade::handle<OpenGl_Workspace> const&) const+696)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_LayerList::renderLayer(opencascade::handle<OpenGl_Workspace> const&, OpenGl_GlobalLayerSettings const&, Graphic3d_Layer const&) const+646)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_LayerList::Render(opencascade::handle<OpenGl_Workspace> const&, bool, OpenGl_LayerFilter, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*) const+618)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::renderStructs(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+178)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::renderScene(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+90)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::render(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*, bool)+744)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::redraw(Graphic3d_Camera::Projection, OpenGl_FrameBuffer*, OpenGl_FrameBuffer*)+242)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (OpenGl_View::Redraw()+936)
#00 pc [revision removed] /data/app/com.xxx.xxx-V7Crmc2bF-thoA4so3Q7ag==/lib/arm/libXXX_armeabi-v7a.so (V3d_View::Redraw() const+94)
Public activity
3 archived notes
Participants are labeled by their role within this record.
Unfortunately, this stack trace will not help to identify the problem cause.
Dear Kirill, QOpenGLFramebufferObject was wrapped as OpenGl_FrameBuffer, do you think it might be the cause?
Broken wrapping of QOpenGLFramebufferObject into OpenGl_FrameBuffer might cause issues (for example, if gluing layer in application code doesn't update OpenGl_FrameBuffer after QOpenGLFramebufferObject modifications), but the problem origin couldn't be trivially determined from currently available information.
The crash happens inside OpenGL ES driver, and the reason could be very different (up to the bug within the driver itself, triggered by a combination of many factors).
OpenGl_Caps::contextDebug=true + QSurfaceFormat.setOption(QSurfaceFormat::DebugContext) + verbose log might give a better idea if OpenGL is misused somewhere, but this is possible only if you have a device and reproducible crash scenario at hand.
The crash happens inside OpenGL ES driver, and the reason could be very different (up to the bug within the driver itself, triggered by a combination of many factors).
OpenGl_Caps::contextDebug=true + QSurfaceFormat.setOption(QSurfaceFormat::DebugContext) + verbose log might give a better idea if OpenGL is misused somewhere, but this is possible only if you have a device and reproducible crash scenario at hand.
Related records