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

Qt 5.15 concurrent blockingMap does not work with QPixmap::scaled anymore

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Not Evaluated
    • None
    • 5.15.0
    • Core: QtConcurrent
    • None
    • Windows
    • 87d32424de2f471a520c1f3ba0c3035fbff7ee06

    Description

      Hi,

      In our code, we use a void blockingMap with a lambda that basically takes a QStringList with image file paths, then loads those images into a QPixmap and scales them with smooth transformation.

      The problem now is that starting with Qt 5.15 the program will never get past the blockingMap.
      It seems like all the concurrent threads just enter the pixmap.scaled(...) call and never return from that, because the transformations used in image scaling aren't reentrant anymore.

      Windows 10 (10.0.18363 Build 18363)
      Qt 5.15.0 (There isn't any other as far as I can tell)
      i7 7700K

      I added a more or less minimal sample program that illustrates the problem.
      Just use some base_dir with a lot of pictures and the main window will never show.
      The problem doesn't always show if you just try to scale two or three pictures, so try with at least 10 for consistent results.
      This used to work in Qt 5.14.

      Cheers,
      Megamouse

      Attachments

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

        Activity

          People

            allan.jensen Allan Sandfeld Jensen
            megamouse Patrick Waldner
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes