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

CPU load strongly increasing when constantly calling update() SLOT of few separate QQuickWindows

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.3.2, 5.4.2
    • None
    • This issue was tested with:
      Ubuntu 12.04+qt5.4.2+intel_video. opensource videodriver
      and
       ubuntu14.04+qt5.3.2+radeon_video. opensource videodriver

    Description

      I found that update() slot consumes more and more CPU power it time when running in several windows.

      I wrote a simple program so everyone could check what am i talking about:

          import QtQuick 2.3
          import QtQuick.Controls 1.2
          import QtQuick.Window 2.2
           
          ApplicationWindow {visible: true; width: 640; height: 480;
              Window{  height: 100;  width: 100; visible: true; objectName: "w1"; id:w1; }
              Window{  height: 100;  width: 100; visible: true; objectName: "w2"; id:w2; }
              Window{  height: 100;  width: 100; visible: true; objectName: "w3"; id:w3; }
           
              Timer {
                  interval: 30
                  repeat: true
                  running: true
           
                  onTriggered: {
                      w1.update();
                      w2.update();
                      w3.update();
                  } 
              }
          }
      

      for my system this code increases cpu load lineary from 10% to 60% in 100 second. screenshot is attached.

      It happens only if updating is in few separate windows.
      If i completely reload animated windows with Loader{}, everything resets and CPU load starts to increase from beginning.

      I had already tried to periodically call releaseResources() method and resetOpenGLState() method of QQuickWindow.

      ALso very interesting is that when I apply putenv("LIBGL_ALWAYS_SOFTWARE=1"); in main.cpp this issue goes away and i have CONSTANT low cpu usage, but hardware acceleration is turning off.

      Also when QT_OPENGL_NO_SANITY_CHECK=1 CPU load stay constantly low, until application crashes.

      Attachments

        Issue Links

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

          Activity

            People

              qt.team.quick.subscriptions Qt Quick and Widgets Team
              dddim DIMA
              Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes