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

Capture mouse event speed in GraphicsView should not depend on paint performance.

    XMLWordPrintable

Details

    Description

      STEPS LEADING TO PROBLEM:
      1. Create a full screen empty QGraphicsWidget, capture all mouse move events.
      3. Always capture 128 mouse events in 1 second with no paint.
      4. Always capture 50~70 mouse events in 1 second with empty paint.

      EXPECTED OUTCOME:
      The mouse event generate speed should be independent.

      ACTUAL OUTCOME:
      The mouse event capture speed is depend on
      paint speed.

      FREQUENCY OF OCCURRENCE:
      always

      [reply] [-] Comment 1 Tan Roy (Ixonos) 2011-01-10 15:06:09 EET

      test code attached.

      [reply] [-] Comment 2 Tan Roy (Ixonos) 2011-01-10 15:11:18 EET

      the demo code is a full testing code for sketch performance.
      there are some macro for different test purpose. And all kinds of test result
      are stored in sketchQtOds.ods and sketchQt.xls, please check it out.

      BTW, current QGraphicsView full screen paint is so slow. Even i use empty paint
      function, its only 50~ fps. If i add paint Qt line to screen, it go down to 30~
      FPS.

      [reply] [-] Comment 3 Tan Roy (Ixonos) 2011-01-10 15:36:34 EET

      Created attachment 126506 [details]
      sketchQtOds.ods

      attach the test result

      [reply] [-] Comment 4 Tan Roy (Ixonos) 2011-01-10 15:58:24 EET

      4.7.2~git20101209/git20101231-0maemo1+0m6
      translucent=false translucent=false translucent=true translucent=true
      cache Qimage cache Qpixmap cache Qimage cache Qpixmap
      <1> M=127 FPS=0 M=128 FPS=0 M=127 FPS=0 M=128 FPS=0
      <2> M=71 FPS=55 M=68 FPS=56 M=59 FPS=50 M=52 FPS=50

      <1> = Only capture mouse
      <2> = Only capture mouse and empty paint

      This apart diagram show the different whether call the empty paint. Even i set
      my HandSketchWidget paint function doing nothing, the mouse event i got and the
      FPS are both pretty low.

      Then it seems impossible to add my own sketch trace and paint logic base on
      such low performance.

      and i try ui->graphicsView->setViewport(new GLWidget), it is much slower.

      Also, i tried other ways to improve my sketchWidget performance: use small item
      cache, focus partial repaint; use QtConcurrent do all my logic and cache paint
      in another thread. All things i have done was useless.

      I think current the problem is the basic paint performance is low, especially
      when background is full translucent.

      Attachments

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

        Activity

          People

            Unassigned Unassigned
            jupakari Juuso Pakarinen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes