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

QWaylandSurface sometimes sends sizeChanged with incorrect surface size

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P2: Important
    • None
    • 5.12.10
    • Wayland Compositor
    • None
    • Elina linux
    • Linux/Wayland

    Description

      The HMI application shows several surfaces on different displays (Central, Cluster, HUD) by custom compositor based on the qtwayland. When surface is created and resized, the compositor receives sizeChanged with incorrect size ("[1350; 450]" instead of the "[588; 522]" for the ClusterNavigationMap surface and "[670; 250]" instead of the "[150; 180]" for ClusterGuidance surface.) for both surfaces displayed on the Cluster.
      On wayland logs the resize is looking good.

      QML widgets for the surfaces are created, received sizeChanged(-1,-1) and calls sendConfigure for required size.

      --------------- ClusterNavigationMap Creating on HMI side ------------------------
      
      1190843 2021/11/30 20:14:41.000000 42.9054 130 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::addOutputItem] [HcatCompositor] Received item: HcatCompositorSurface_QMLTYPE_415(0x7f4f534540, parent=0x7f4f5343c0, geometry=1294,0 588x522) with appId: "ClusterNavigationMap" item.visible: true
      1190846 2021/11/30 20:14:41.000000 42.9055 131 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::createSurfaceItem] [HcatCompositor] OutputItem: HcatCompositorSurface_QMLTYPE_415(0x7f4f534540, parent=0x7f4f5343c0, geometry=1294,0 588x522) ShellSurface: QWaylandIviSurface(0x7f57168040)
      1190848 2021/11/30 20:14:41.000000 42.9060 132 VD HCEN DFLT 591 log debug verbose 1 [expression for onStatusChanged] [HcatCompositorSurface] HcatCompositorSurface_QMLTYPE_415(0x7f4f534540) status: 1 HcatCompositor.lastError: appId: ClusterNavigationMap
      1190852 2021/11/30 20:14:41.000000 42.9061 133 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] AppId: QVariant(QString, "ClusterNavigationMap") Supposed size: "[588; 522]" Surface size: "[-1; -1]"
      1190854 2021/11/30 20:14:41.000000 42.9070 134 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] QQuickItem HcatCompositorSurface_QMLTYPE_415(0x7f4f534540, parent=0x7f4f5343c0, geometry=1294,0 588x522) visible: true Surface size is not correct sendConfigure
      1190855 2021/11/30 20:14:41.000000 42.9071 135 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::sendConfigure] [HcatCompositor] Applying window geometry for item: HcatCompositorSurface_QMLTYPE_415(0x7f4f534540) size: "[588; 522]" appId: QVariant(QString, "ClusterNavigationMap")
      
      1190860 2021/11/30 20:14:41.000000 42.9094 140 VD HCEN DFLT 591 log info verbose 1 [expression for onCompleted] [HMIClusterRoot] widget was added, widget type: 8 surface: ClusterNavigationMap
      
      --------------- ClusterGuidance Creating on HMI side ------------------------
      
      1190889 2021/11/30 20:14:41.000000 42.9165 143 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::addOutputItem] [HcatCompositor] Received item: HcatCompositorSurface_QMLTYPE_415(0x7f4f534f00, parent=0x7f4f534d80, geometry=1499,117 150x180) with appId: "ClusterGuidance" item.visible: true
      1190890 2021/11/30 20:14:41.000000 42.9166 144 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::createSurfaceItem] [HcatCompositor] OutputItem: HcatCompositorSurface_QMLTYPE_415(0x7f4f534f00, parent=0x7f4f534d80, geometry=1499,117 150x180) ShellSurface: QWaylandIviSurface(0x7f57dd2ec0)
      1190891 2021/11/30 20:14:41.000000 42.9169 145 VD HCEN DFLT 591 log debug verbose 1 [expression for onStatusChanged] [HcatCompositorSurface] HcatCompositorSurface_QMLTYPE_415(0x7f4f534f00) status: 1 HcatCompositor.lastError: appId: ClusterGuidance
      1190892 2021/11/30 20:14:41.000000 42.9170 146 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] AppId: QVariant(QString, "ClusterGuidance") Supposed size: "[150; 180]" Surface size: "[-1; -1]"
      1190893 2021/11/30 20:14:41.000000 42.9171 147 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] QQuickItem HcatCompositorSurface_QMLTYPE_415(0x7f4f534f00, parent=0x7f4f534d80, geometry=1499,117 150x180) visible: true Surface size is not correct sendConfigure
      1190895 2021/11/30 20:14:41.000000 42.9172 148 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::sendConfigure] [HcatCompositor] Applying window geometry for item: HcatCompositorSurface_QMLTYPE_415(0x7f4f534f00) size: "[150; 180]" appId: QVariant(QString, "ClusterGuidance")
      
      1190940 2021/11/30 20:14:41.000000 42.9195 153 VD HCEN DFLT 591 log info verbose 1 [expression for onCompleted] [HMIClusterRoot] widget was added, widget type: 9 surface: ClusterGuidance
      

      Resizing looks OK in wayland logs and wayland client app gets a successful callback about it.

      ------- Resizing both surfaces on Wayland side -------------------------------
      1191477 2021/11/30 20:14:42.000000 43.2397 252 VD SYS JOUR 498 log info verbose 5 2021/11/30 17:10:02.415234 42.907885 HMI[591]: Informational: [2697159.122] -> ivi_surface@24.configure(588, 522)
      1191478 2021/11/30 20:14:42.000000 43.2423 253 VD SYS JOUR 498 log info verbose 5 2021/11/30 17:10:02.425140 42.917791 HMI[591]: Informational: [2697169.200] -> ivi_surface@26.configure(150, 180)
      
      .... 
      
      ------------------- NAWM gets a callback of succesfull resize --------------------------
      1191510 2021/11/30 20:14:42.000000 43.2493 185 VD NAWM NAWM 1807 log debug verbose 2 [Thread: 547835047744][void CProcessMonitor::sltOnReadyReadStandardError()] Process: /usr/bin/Widget.NavigationClusterDisplay: stderr:ResizeCallback: Successfully resized EGLSurface, new dimensions x: 0, y: 0, width: 588, height: 522 ResizeCallback: Successfully resized EGLSurface, new dimensions x: 0, y: 0, width: 150, height: 180
      

      But after that the HcatCompositor receives sizeChanged signals with incorrect size for both surfaces. The compositor calls "sendConfigure" again but doesn't receive a sizeChanged with correct size.

      1193239 2021/11/30 20:14:42.000000 44.4328 19 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] AppId: QVariant(QString, "ClusterNavigationMap") Supposed size: "[588; 522]" Surface size: "[1350; 450]"
      1193240 2021/11/30 20:14:42.000000 44.4329 20 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] QQuickItem HcatCompositorSurface_QMLTYPE_415(0x7f4f534540, parent=0x7f4f5343c0, geometry=1294,0 588x522) visible: true Surface size is not correct sendConfigure
      1193241 2021/11/30 20:14:42.000000 44.4329 21 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::sendConfigure] [HcatCompositor] Applying window geometry for item: HcatCompositorSurface_QMLTYPE_415(0x7f4f534540) size: "[588; 522]" appId: QVariant(QString, "ClusterNavigationMap")
      1193326 2021/11/30 20:14:42.000000 44.5155 38 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] AppId: QVariant(QString, "ClusterGuidance") Supposed size: "[150; 180]" Surface size: "[670; 250]"
      1193327 2021/11/30 20:14:42.000000 44.5156 39 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::showResizedItem] [HcatCompositor] QQuickItem HcatCompositorSurface_QMLTYPE_415(0x7f4f534f00, parent=0x7f4f534d80, geometry=1499,117 150x180) visible: true Surface size is not correct sendConfigure
      1193328 2021/11/30 20:14:42.000000 44.5158 40 VD HCEN DFLT 591 log info verbose 1 [HcatCompositor::sendConfigure] [HcatCompositor] Applying window geometry for item: HcatCompositorSurface_QMLTYPE_415(0x7f4f534f00) size: "[150; 180]" appId: QVariant(QString, "ClusterGuidance")
      

      Qt team. Could you please check why the compositor receives sizeChanged signals with incorrect size?
      Could you please tell is there any way to get a surface size except the sizeChanged, widthChahged and heightChanged signals? I want to try to ask wayland for the surface size directly.

      Attachments

        1. HMIfilter_NAV_4.dlf
          21 kB
        2. Test1x1resize.7z
          4.46 MB
        3. test7.zip.001
          27.66 MB
        4. test7.zip.002
          27.66 MB
        5. test7.zip.003
          19.21 MB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            esabraha Eskil Abrahamsen Blomfeldt
            olyubimov Oleg Lyubimov
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes