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

Painting artifacts with Qt::HighDpiScaleFactorRoundingPolicy::PassThrough and multiple displays

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.15.6, 5.15.5, 6.1.3, 6.2.0 Beta3
    • Fix Version/s: None
    • Component/s: GUI: High-DPI
    • Platform/s:
      Windows

      Description

      When application is moved from screen to other there are some noticeable painting artifacts if using Qt::HighDpiScaleFactorRoundingPolicy::PassThrough scaling with multiple screens which have difference in scaling and at least the other uses fractional scaling.

      Way to reproduce:

      1. On Windows 10 Desktop computer, set the scaling of the primary display to 100% and the scaling of the additional monitor to 125%

      Issue was reproducible with following display settings:
      Primary monitor: 1920 x 1080 (Scale 100%)
      additional monitor: 1920 x 1080 (Scale 125%)

      AND

      Primary monitor: 3840 x 2160 (Scale 150%)
      additional monitor: 1920 x 1080 (Scale 125%)

      2. Build and run the attached example project with Qt 5.15.6. The app appears on the primary monitor and looks normal (pic1)

      3. Drag the app to additional monitor. The app has leftover painting
      artifacts. This is the painting artifact #1 (pic2).

      4. [Left Click] once to hide the "base_" widget, then [Left Click]
      again to show it. This resolves some of the artifacts from Step 3, but it should still look like a solid blue box. Notice the black stripe across the box. This area is not being repainted. It is the very top row of pixels from the "custom_" widget. This is the painting artifact #2 (pic3)

      5. [Right Click] once to show a magenta overlay, then [Right Click] again to
      hide it. Please notice the magenta stripe across the box. Similar to Step 4, the same row of pixels is not being repainted. (pic4)

      There were also similar painting artifacts with Qt 6.1.3 and with Qt 6.2.0 beta but they behaved a bit differently than with 5.15.6

        Attachments

        1. pic1.png
          pic1.png
          10 kB
        2. pic2.png
          pic2.png
          10 kB
        3. pic3.png
          pic3.png
          10 kB
        4. pic4.png
          pic4.png
          10 kB
        5. qtbug96329.zip
          2 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            sorvig Morten Sørvig
            Reporter:
            foxxx Tuukka Kettunen
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes