Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-54842

Spontaneous crashes of Qt Quick apps on Vivante

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.5.0, 5.6.0, 5.7.0
    • Quick: SceneGraph
    • None
    • Debian wheezy, ARMv7 Processor rev 10 (v7l)

    Description

      Qt Quick applications spontaneously crash on Vivante with the following backtrace:

      #0  __libc_do_syscall () at ../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S:47
      #1  0x75bf9142 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:67
      #2  0x75bfb56e in __GI_abort () at abort.c:91
      #3  0x75c1ef38 in __libc_message (do_abort=2, fmt=0x75c9d400 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:201
      #4  0x75c2597a in malloc_printerr (action=3, str=0x75c9d560 "double free or corruption (top)", ptr=<optimized out>) at malloc.c:5039
      #5  0x755f7574 in gcoOS_FreeMemory () from /usr/lib/galcore/libGAL.so
      #6  0x755f75e8 in gcoOS_Free () from /usr/lib/galcore/libGAL.so
      #7  0x755eb4b4 in ?? () from /usr/lib/galcore/libGAL.so
      Backtrace stopped: previous frame identical to this frame (corrupt stack?)
      

      I reproduce it by running several instances of examples/quick/demos/clocks/clocks in parallel.

      With 'git bisect' I found that the bug was introduced by a83246146854166a54ee1f9bd4f8911d6bd49602 (Fix the vertex ordering of merged triangle strips). But it looks like it was actually introduced by the preceding commit a371bac3fba73f92aaa63a68d8ab1ae81a1d1031 ("Reuse the memory we use for vertex uploads", https://codereview.qt-project.org/#/c/102934/ ) which mentions that some drivers may have broken index buffer support.

      EGL_VERSION: 1.4
      EGL_VENDOR: Vivante Corporation
      EGL_EXTENSIONS:
          EGL_KHR_reusable_sync, EGL_KHR_fence_sync, EGL_KHR_image,
          EGL_KHR_image_base, EGL_KHR_image_pixmap, EGL_KHR_gl_texture_2D_image,
          EGL_KHR_gl_texture_cubemap_image, EGL_KHR_gl_renderbuffer_image,
          EGL_KHR_lock_surface, EGL_KHR_create_context,
          EGL_EXT_create_context_robustness, EGL_EXT_buffer_age,
          EGL_EXT_protected_surface
      EGL_CLIENT_APIS: OpenGL_ES OpenVG
      GL_VERSION: OpenGL ES 3.0 V5.0.11.p4.25762
      GL_RENDERER: Vivante GC2000
      GL_EXTENSIONS:
          GL_OES_vertex_type_10_10_10_2, GL_OES_vertex_half_float,
          GL_OES_element_index_uint, GL_OES_mapbuffer, GL_OES_vertex_array_object,
          GL_OES_compressed_ETC1_RGB8_texture, GL_OES_compressed_paletted_texture,
          GL_OES_texture_npot, GL_OES_rgb8_rgba8, GL_OES_depth_texture,
          GL_OES_depth_texture_cube_map, GL_OES_depth24, GL_OES_depth32,
          GL_OES_packed_depth_stencil, GL_OES_fbo_render_mipmap,
          GL_OES_get_program_binary, GL_OES_fragment_precision_high,
          GL_OES_standard_derivatives, GL_OES_EGL_image, GL_OES_EGL_sync,
          GL_EXT_texture_type_2_10_10_10_REV, GL_EXT_texture_filter_anisotropic,
          GL_EXT_texture_format_BGRA8888, GL_EXT_read_format_bgra,
          GL_EXT_multi_draw_arrays, GL_EXT_frag_depth, GL_EXT_discard_framebuffer,
          GL_EXT_blend_minmax, GL_EXT_multisampled_render_to_texture,
          GL_EXT_robustness, GL_VIV_tex_direct
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            sletta Gunnar Sletta
            avolkov Alexander Volkov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes