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

Allow the same eglSurface and eglWindow accessed by two threads without any sync as in HelloWorldX.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P1: Critical
    • None
    • 6.2.2
    • QPA: Wayland
    • None

    Description

      Allow eglSurfaces  and wl_egl_window  by two threads without any sync as in HelloWorldX.

      the api trace:
      [  5249] EGL(tid=0x76fbc5c0): eglDestroySurface 0x11b5c10 0x154f870
      .
      [  5286] (tid=0x63aff2d0, gc=0x12d6708): glDrawElements 0x0005 4 0x1403 0x2
      [  5289] EGL(tid=0x63aff2d0): eglSwapBuffers 0x11b5c10 (nil), Frame Number = 68
      one thread is doing eglDestroySurface, , wl_surface_destroy and wl_egl_window_destroy() while another thread still doing rendering and eglSwapBuffers, 
      There is race condition, wl_egl_window_destroy() will delete wl_surfac, free wayland egl_window and trigger destory wl_window callback, thread enter eglSwapBuffer, there is segmentation for null wayland interface.
      I will attach the application HelloWorldX in the ticket.  The application runs on imx6q.
      If run long time,  you will see the segmentation fault.

       

      To reproduce the issue:

      1. untar attached package and copy everything to target board including .qml directory.
      2. ./HelloWorldX,  untill it crashes.

      Attachments

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

        Activity

          People

            qt.team.graphics.and.multimedia Qt Graphics Team
            chingling chingling wang
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes