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

Serious performance regression for video-based widgets from Qt 4.6.0 beta 1 to release candidate 1

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P2: Important
    • 4.7.2
    • 4.6.0
    • Multimedia
    • None
    • Windows, MinGW GCC 4.4.0
      Qt 4.6.0 beta 1 and Qt 4.6.0 release candidate 1
    • f21d183b26ea824fadb7c54a3ba9cdf66d99b726 91c47ba2c156e4dcaf9b2e03f7abf796c4828906

    Description

      Okay, this one is going to be really tough, because I'm at a loss as to what causes this.

      This won't be very professional, but it's very serious. The bug is that when moving the mouse cursor around on top of Qt windows, performance gets slaughtered badly on the Windows port (I did not test other ports yet.)

      Since I don't have a tiny example, I will point you to the program I'm working on instead. My software that uses Qt is bsnes, and you can get its source code here:
      http://byuusan.kuro-hitsuji.net/bsnes_v057.tar.bz2 (copy-paste just in case it 404s)
      If you want pre-compiled Win32 binaries:
      http://byuusan.kuro-hitsuji.net/bsnes_v057.zip – Qt 4.6.0 beta 1 (problem doesn't exist)
      http://byuusan.kuro-hitsuji.net/bsnes_v056.zip – Qt 4.6.0 RC1 (problem exists)
      [ I had to release a bumped version number to work around this issue, they are otherwise identical ]

      This is a Super NES emulator, and the way it works is to have a main window that embeds an empty QWidget for video output. I pass the raw window handle (HWND) to different drivers, Direct3D, OpenGL, etc to draw video directly to that. Note that this bug even occurs if I turn off video rendering entirely.

      If you don't have any SNES images, you can load any old small binary file and it'll just show a black screen but you'll see the frame counter going. Or you could grab a public domain one like Pacman: http://www.zophar.net/pdroms/snes/pacman.html

      Now with Qt 4.6.0b1 and below, this worked fine. But as of rc1, while moving the mouse anywhere on the window, you can see the framerate counter in the bottom right gets cut in half until you stop moving again. Just shake the mouse around in little circles in the middle. It must be some kind of messaging problem.

      This is ... absolutely insane. I don't know how to make this into a smaller test case for you, I'm very sorry for that. I know it's really unorthodox to dump on you a giant ~450kb source program asking for help like this. I hope you can help ... I'll do anything I can to assist if you're interested.

      Attachments

        Issue Links

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

          Activity

            People

              bhughes Bradley T. Hughes (closed Nokia Identity) (Inactive)
              byuu byuu san
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes