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

OpenGLES with threaded render loop and Animator crash

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • P1: Critical
    • None
    • 5.10.1, 5.11.1
    • Quick: SceneGraph
    • None
    • Windows 10 64bit using Qt 5.10 32bit MSVC2015 & Qt 5.11.1 32bit MSVC2015
    • Windows

    Description

      With Qt::AA_UseOpenGLES set and render loop set to 'threaded' the crash is 100% reproducible using an animator and loading another QML file using a loader. 

      A project to reproduce the crash is attached.

      This appears to be a multi-thread issue and the crash occurs in multiple places, the exact error thrown by QT is:

       

      "D3D11 CORRUPTION: ID3D11DeviceContext::Map: Two threads were found to be executing functions associated with the same Device[Context] at the same time. This will cause corruption of memory. Appropriate thread synchronization needs to occur external to the Direct3D API (or through the ID3D10Multithread interface). 4912 and 10588 are the implicated thread ids. [ MISCELLANEOUS CORRUPTION #28: CORRUPTED_MULTITHREADING]"

       

       

      Stack trace is below although this is different every time due to the nature of the crash:

       

      1 RaiseException KERNELBASE 0x7769aba2 
      2 ReportCorruption D3D11_3SDKLayers 0x67e78e5 
      3 NDebug::CInterfaceSentinel::CFunctionSentinel::ReportMessageAndRaiseException D3D11_3SDKLayers 0x677ad90 
      4 NDebug::CSingleThreadedInterfaceSentinel::CSingleThreadedFunctionSentinel::ValidateThreading D3D11_3SDKLayers 0x67c1eb3 
      5 NDebug::CSingleThreadedInterfaceSentinel::CSingleThreadedFunctionSentinel::CSingleThreadedFunctionSentinel D3D11_3SDKLayers 0x67c1f8d 
      6 NDebug::CContext::OMSetRenderTargets D3D11_3SDKLayers 0x678e0fc 
      7 rx::Renderer11::setOneTimeRenderTarget Renderer11.cpp 2952 0x623f5f4 
      8 rx::SwapChain11::copyOffscreenToBackbuffer SwapChain11.cpp 761 0x6279b23 
      9 rx::SwapChain11::swapRect SwapChain11.cpp 670 0x627ca81 
      10 rx::SurfaceD3D::swapRect SurfaceD3D.cpp 231 0x60e2e2a 
      11 rx::SurfaceD3D::swap SurfaceD3D.cpp 371 0x60e2d3c 
      12 egl::Surface::swap Surface.cpp 122 0x6035a08 
      13 egl::SwapBuffers entry_points_egl.cpp 826 0x61139cc 
      14 eglSwapBuffers libEGL.cpp 112 0x5922094 
      15 QWindowsEGLContext::swapBuffers qwindowseglcontext.cpp 539 0x3381470 
      16 QOpenGLContext::swapBuffers qopenglcontext.cpp 1109 0xf765c54 
      17 QSGRenderThread::syncAndRender qsgthreadedrenderloop.cpp 652 0x44207d2 
      18 QSGRenderThread::run qsgthreadedrenderloop.cpp 732 0x4420070 
      19 QThreadPrivate::start qthread_win.cpp 380 0x66b1ce13 
      20 BaseThreadInitThunk KERNEL32 0x753962c4 
      21 __RtlUserThreadStart ntdll 0x77e41eb9 
      22 _RtlUserThreadStart ntdll 0x77e41e84 

       

      Attachments

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

        Activity

          People

            janichol Andy Nichols
            twisted89 James Smith
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes