Colibri i.MX6DL SIGSEGV rendering MapboxGL

Hello,

I’m testing an in house Qt application at sequality software engineering. The application works fine on every module i tested so far and on Raspberry Pi 3 & 4. A problem occurred after updating the Colibri i.MX6DL to boot2Qt 5.14.0. The Module is throwing the SIGSEGV signal, some time after starting routing in MapboxGL.

This is the stacktrace at the time the signal occures:

1 computeWLimit gc_hal_user_vertex_array.c 67 0x754c51dc
2 gcoVERTEXARRAY_StreamBind gc_hal_user_vertex_array.c 2327 0x754c78c0
3 gcChipSetVertexArrayBind gc_chip_draw.c 1118 0x75b97468
4 __glChipDrawElementsInstanced gc_chip_draw.c 6660 0x75b9df48
5 __glDrawPrimitive gc_es_draw.c 1044 0x75b56ab8
6 glDrawElements gc_es_api.c 406 0x75b27550
7 mbgl::gl::Program<mbgl::gl::Triangle, mbgl::gl::Attributes<mbgl::attributes::a_pos_offset, mbgl::attributes::a_data<unsigned short, 4u>, mbgl::attributes::a_projected_pos, mbgl::attributes::a_fade_opacity, mbgl::ZoomInterpolatedAttribute<mbgl::attributes::a_opacity>, mbgl::ZoomInterpolatedAttribute<mbgl::attributes::a_fill_color>, mbgl::ZoomInterpolatedAttribute<mbgl::attributes::a_halo_color>, mbgl::ZoomInterpolatedAttribute<mbgl::attributes::a_halo_width>, mbgl::ZoomInterpolatedAttribute<mbgl::attributes::a_halo_blur>>, mbgl::gl::Uniforms<mbgl::uniforms::u_matrix, mbgl::uniforms::u_label_plane_matrix, mbgl::uniforms::u_gl_coord_matrix, mbgl::uniforms::u_extrude_scale, mbgl::uniforms::u_texsize, mbgl::uniforms::u_texture, mbgl::uniforms::u_fade_change, mbgl::uniforms::u_is_text, mbgl::uniforms::u_camera_to_center_distance, mbgl::uniforms::u_pitch, mbgl::uniforms::u_pitch_with_map, mbgl::uniforms::u_rotate_symbol, mbgl::uniforms::u_aspect_ratio, mbgl::uniforms::u_gamma_scale, mbgl::uniforms::u_is_halo, mbgl::uniforms::u_is_size_zoom_constant, mbgl::uniforms::u_is_size_feature_constant, mbgl::uniforms::u_size_t, mbgl::uniforms::u_size, mbgl::InterpolationUniform<mbgl::attributes::a_opacity>, mbgl::InterpolationUniform<mbgl::attributes::a_fill_color>, mbgl::InterpolationUniform<mbgl::attributes::a_halo_color>, mbgl::InterpolationUniform<mbgl::attributes::a_halo_width>, mbgl::InterpolationUniform<mbgl::attributes::a_halo_blur>, mbgl::uniforms::u_opacity, mbgl::uniforms::u_fill_color, mbgl::uniforms::u_halo_color, mbgl::uniforms::u_halo_width, mbgl::uniforms::u_halo_blur>>::draw<mbgl::gl::Triangles> new_allocator.h 86 0x6a355b52
8 mbgl::SymbolProgram<mbgl::shaders::symbol_sdf, mbgl::gl::Triangle, mbgl::SymbolLayoutAttributes, mbgl::gl::Uniforms<mbgl::uniforms::u_matrix, mbgl::uniforms::u_label_plane_matrix, mbgl::uniforms::u_gl_coord_matrix, mbgl::uniforms::u_extrude_scale, mbgl::uniforms::u_texsize, mbgl::uniforms::u_texture, mbgl::uniforms::u_fade_change, mbgl::uniforms::u_is_text, mbgl::uniforms::u_camera_to_center_distance, mbgl::uniforms::u_pitch, mbgl::uniforms::u_pitch_with_map, mbgl::uniforms::u_rotate_symbol, mbgl::uniforms::u_aspect_ratio, mbgl::uniforms::u_gamma_scale, mbgl::uniforms::u_is_halo>, mbgl::style::TextPaintProperties>::draw<mbgl::gl::Triangles> symbol_program.hpp 326 0x6a355b52
9 mbgl::RenderSymbolLayer::<lambda(auto:12&, auto:13&&, const auto:14&, const auto:15&, const mbgl::style::SymbolPropertyValues&, const auto:16&, const auto:17&)>::operator()<mbgl::ProgramMap<mbgl::SymbolSDFProgram<mbgl::style::TextPaintProperties>>, mbgl::IndexedTuple<mbgl::TypeList<mbgl::uniforms::u_matrix, mbgl::uniforms::u_label_plane_matrix, mbgl::uniforms::u_gl_coord_matrix, mbgl::uniforms::u_extrude_scale, mbgl::uniforms::u_texsize, mbgl::uniforms::u_texture, mbgl::uniforms::u_fade_change, mbgl::uniforms::u_is_text, mbgl::uniforms::u_camera_to_center_distance, mbgl::uniforms::u_pitch, mbgl::uniforms::u_pitch_with_map, mbgl::uniforms::u_rotate_symbol, mbgl::uniforms::u_aspect_ratio, mbgl::uniforms::u_gamma_scale, mbgl::uniforms::u_is_halo>, mbgl::TypeList<mbgl::gl::UniformValue<mbgl::uniforms::u_matrix, std::array<double, 16>>, mbgl::gl::UniformValue<mbgl::uniforms::u_label_plane_matrix, std::array<double, 16>>, mbgl::gl::UniformValue<mbgl::uniforms::u_gl_coord_matrix, std::array<double, 16>>, mbgl::gl::UniformValue<mbgl::uniforms::u_extrude_scale, std::array<float, 2>>, mbgl::gl::UniformValue<mbgl::uniforms::u_texsize, mbgl::Size>, mbgl::gl::UniformValue<mbgl::uniforms::u_texture, unsigned char>, mbgl::gl::UniformValue<mbgl::uniforms::u_fade_change, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_is_text, bool>, mbgl::gl::UniformValue<mbgl::uniforms::u_camera_to_center_distance, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_pitch, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_pitch_with_map, bool>, mbgl::gl::UniformValue<mbgl::uniforms::u_rotate_symbol, bool>, mbgl::gl::UniformValue<mbgl::uniforms::u_aspect_ratio, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_gamma_scale, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_is_halo, bool>>>, mbgl::SymbolBucket::TextBuffer, std::unique_ptr<mbgl::SymbolSizeBinder>, mbgl::PaintPropertyBinders<mbgl::TypeList<mbgl::style::TextOpacity, mbgl::style::TextColor, mbgl::style::TextHaloColor, mbgl::style::TextHaloWidth, mbgl::style::TextHaloBlur>>, mbgl::style::Properties<mbgl::style::TextOpacity, mbgl::style::TextColor, mbgl::style::TextHaloColor, mbgl::style::TextHaloWidth, mbgl::style::TextHaloBlur, mbgl::style::TextTranslate, mbgl::style::TextTranslateAnchor>::PossiblyEvaluated>(mbgl::ProgramMap<mbgl::SymbolSDFProgram<mbgl::style::TextPaintProperties>> &, mbgl::IndexedTuple<mbgl::TypeList<mbgl::uniforms::u_matrix, mbgl::uniforms::u_label_plane_matrix, mbgl::uniforms::u_gl_coord_matrix, mbgl::uniforms::u_extrude_scale, mbgl::uniforms::u_texsize, mbgl::uniforms::u_texture, mbgl::uniforms::u_fade_change, mbgl::uniforms::u_is_text, mbgl::uniforms::u_camera_to_center_distance, mbgl::uniforms::u_pitch, mbgl::uniforms::u_pitch_with_map, mbgl::uniforms::u_rotate_symbol, mbgl::uniforms::u_aspect_ratio, mbgl::uniforms::u_gamma_scale, mbgl::uniforms::u_is_halo>, mbgl::TypeList<mbgl::gl::UniformValue<mbgl::uniforms::u_matrix, std::array<double, 16>>, mbgl::gl::UniformValue<mbgl::uniforms::u_label_plane_matrix, std::array<double, 16>>, mbgl::gl::UniformValue<mbgl::uniforms::u_gl_coord_matrix, std::array<double, 16>>, mbgl::gl::UniformValue<mbgl::uniforms::u_extrude_scale, std::array<float, 2>>, mbgl::gl::UniformValue<mbgl::uniforms::u_texsize, mbgl::Size>, mbgl::gl::UniformValue<mbgl::uniforms::u_texture, unsigned char>, mbgl::gl::UniformValue<mbgl::uniforms::u_fade_change, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_is_text, bool>, mbgl::gl::UniformValue<mbgl::uniforms::u_camera_to_center_distance, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_pitch, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_pitch_with_map, bool>, mbgl::gl::UniformValue<mbgl::uniforms::u_rotate_symbol, bool>, mbgl::gl::UniformValue<mbgl::uniforms::u_aspect_ratio, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_gamma_scale, float>, mbgl::gl::UniformValue<mbgl::uniforms::u_is_halo, bool>>> &&, const mbgl::SymbolBucket::TextBuffer &, const std::unique_ptr<mbgl::SymbolSizeBinder, std::default_delete<mbgl::SymbolSizeBinder>> &, const mbgl::PaintPropertyBinders<mbgl::TypeList<mbgl::style::TextOpacity, mbgl::style::TextColor, mbgl::style::TextHaloColor, mbgl::style::TextHaloWidth, mbgl::style::TextHaloBlur>> &, const mbgl::style::Properties<mbgl::style::TextOpacity, mbgl::style::TextColor, mbgl::style::TextHaloColor, mbgl::style::TextHaloWidth, mbgl::style::TextHaloBlur, mbgl::style::TextTranslate, mbgl::style::TextTranslateAnchor>::PossiblyEvaluated &, const mbgl::style::SymbolPropertyValues &) render_symbol_layer.cpp 113 0x6a355b52
10 mbgl::RenderSymbolLayer::render render_symbol_layer.cpp 215 0x6a356dc0
11 mbgl::Renderer::Impl::render renderer_impl.cpp 585 0x6a10074a
12 mbgl::Renderer::render unique_ptr.h 342 0x6a0fb6ee
13 QMapboxGLMapRenderer::render unique_ptr.h 342 0x6a0e9346
14 QMapboxGLPrivate::render unique_ptr.h 342 0x6a0e0932
15 QMapboxGL::render qmapboxgl.cpp 1714 0x6a0e0964
16 QSGMapboxGLTextureNode::render qsgmapboxglnode.cpp 106 0x6a0de28c
17 QGeoMapMapboxGLPrivate::updateSceneGraph qgeomapmapboxgl.cpp 168 0x6a0d6452
18 QDeclarativeGeoMap::updatePaintNode atomic_base.h 390 0x6abf0e52
19 QDeclarativeGeoMap::updatePaintNode qdeclarativegeomap.cpp 491 0x6abf0e52
20 QQuickWindowPrivate::updateDirtyNode qquickwindow.cpp 3654 0x76e22d70
21 QQuickWindowPrivate::updateDirtyNodes qquickwindow.cpp 3399 0x76e2305a
22 QQuickWindowPrivate::syncSceneGraph qquickwindow.cpp 448 0x76e2402c
23 QSGRenderThread::sync qsgthreadedrenderloop.cpp 640 0x76de3f9c
24 QSGRenderThread::syncAndRender qsgthreadedrenderloop.cpp 764 0x76de558e
25 QSGRenderThread::run qsgthreadedrenderloop.cpp 980 0x76de828a
26 QThreadPrivate::start qthread_unix.cpp 342 0x76027f46
27 start_thread pthread_create.c 486 0x75c74b34
28 ?? clone.S 73 0x75da026c

I don’t know, what the source of this problem is, but I will supply further information, if needed to detect the source of the problem.

HI @michaelw and Welcome to the Toradex Community!

How did you compile the Qt application?

A problem occurred after updating the Colibri i.MX6DL to boot2Qt 5.14.0

Did your application work with the older version of QT?

Best regards,
Jaski

Hello @jaski.tx,

I used the toolchain, which comes with boot2Qt. I didn’t use any special flags or settings.

Yes, it did work with 5.13.2. Which I downgraded to again, because boot2Qt 5.14.1 didn’t resolve my problem either. And I noticed, that the this problem is also present on the Apalis i.MX6Q with boot2Qt 5.14.1. (I never tested i.MX6Q with 5.14.0, but I assume that the problem exists there too)

Best regards,
Michael

Hi @michaelw

I’m afraid but we cannot help you further. You should address this issue to QT.

Best regards,
Jaski