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

[REG] Window movement stalls in animated Qt Quick applications on Windows

    XMLWordPrintable

Details

    • 81408c0e76616b127c46779dc14bbcf084a3d87b

    Description

      In dev running a constantly animated Qt Quick application and then dragging the window around on the screen exhibits a serious blocking behavior. It looks like the system event processing is stalled (starved by timer events which work as expected), or something like that. Occasionally you can end up in a Window Not Responding dialog as well.

      This is not the case with 5.13.

      Triggering rendering is done via requestUpdate() in Qt Quick. On Windows this is simply an 5 ms timer (PreciseTimer). This is then started again and again, after firing. (and note that the operations done upon firing are heavy since it throttles the thread to vsync) While the timer itself seems to work (as there is no problem with the rendering), some changes somewhere (event dispatcher?) seem to defer the handling of other (system?) events.

      The issue is more visible with the 'basic' render loop, but is there with 'threaded' as well, albeit less easy to trigger.

      The problem can be mitigated, apparently, by putting the requestUpdate() call behind a posted event. See https://codereview.qt-project.org/c/qt/qtdeclarative/+/270416

      Such a patch should not be necessary however as this looks like a regression from 5.13

      To reproduce, try examples/quick/rendercontrol. There the problem is easily visible even with the default threaded render loop.

      Or get a reasonably complex Qt Quick application, like https://github.com/alpqr/qt5-cinematic-experience
      then do
      set QSG_RENDER_LOOP=basic
      then run it and drag the window around with the mouse.

      Update: this seems to be caused by 6a7cea64d20759ee4ff1e0c2f682868e2907661f from https://codereview.qt-project.org/c/qt/qtbase/+/257000

      Attachments

        1. qtbug77464_quick_diag.diff
          1 kB
        2. qtbug77464_diag.diff
          2 kB
        3. qtbug77464_dev_log.txt
          57 kB
        4. qtbug77464_512_log.txt
          80 kB

        Issue Links

          Activity

            People

              alex1973tr Alex Trotsenko
              lagocs Laszlo Agocs
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: