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

Weird graphics issues when running release build of application on Ubuntu with Material style

    XMLWordPrintable

Details

    Description

      I recently tried deploying a release build of Slate on Ubuntu, but ran into this issue:

      The ripple effects are all over the place, and the colour picker (basically just stolen from Qt Quick Controls 1) is white.

      I'm not able to reproduce it with a minimal example with similar controls/items:

      import QtQuick 2.7
      import QtQuick.Controls 2.3
      
      ApplicationWindow {
          id: window
          visible: true
          width: 640
          height: 480
      
          header: ToolBar {
              Row {
                  id: toolbarRow
                  anchors.fill: parent
      
                  Repeater {
                      model: 10
      
                      ToolButton {
                          text: "A"
                          hoverEnabled: true
                          focusPolicy: Qt.NoFocus
      
                          ToolTip.text: qsTr("Change the size of the canvas")
                          ToolTip.visible: hovered
                      }
                  }
      
                  ToolSeparator {}
      
                  Repeater {
                      model: 10
      
                      ToolButton {
                          text: "A"
                          hoverEnabled: true
                          focusPolicy: Qt.NoFocus
      
                          ToolTip.text: qsTr("Change the size of the canvas")
                          ToolTip.visible: hovered
                      }
                  }
              }
          }
      
          Flickable {
              anchors.fill: parent
              contentWidth: flow.implicitWidth
              contentHeight: flow.implicitHeight
      
              ScrollBar.vertical: ScrollBar {}
      
              Flow {
                  id: flow
                  width: window.width
      
                  Repeater {
                      model: 32
      
                      Rectangle {
                          id: container
                          width: 100
                          height: 100
      
                          ShaderEffect {
                              id: map
                              width: 64
                              height: 64
                              scale: container.width / width;
                              layer.enabled: true
                              layer.smooth: true
                              anchors.centerIn: parent
                              property real hue: 1.0
      
                              fragmentShader: container.OpenGLInfo.profile === OpenGLInfo.CoreProfile ? "#version 150
                                  in vec2 qt_TexCoord0;
                                  uniform float qt_Opacity;
                                  uniform float hue;
                                  out vec4 fragColor;
      
                                  float hueToIntensity(float v1, float v2, float h) {
                                      h = fract(h);
                                      if (h < 1.0 / 6.0)
                                          return v1 + (v2 - v1) * 6.0 * h;
                                      else if (h < 1.0 / 2.0)
                                          return v2;
                                      else if (h < 2.0 / 3.0)
                                          return v1 + (v2 - v1) * 6.0 * (2.0 / 3.0 - h);
      
                                      return v1;
                                  }
      
                                  vec3 HSLtoRGB(vec3 color) {
                                      float h = color.x;
                                      float l = color.z;
                                      float s = color.y;
      
                                      if (s < 1.0 / 256.0)
                                          return vec3(l, l, l);
      
                                      float v1;
                                      float v2;
                                      if (l < 0.5)
                                          v2 = l * (1.0 + s);
                                      else
                                          v2 = (l + s) - (s * l);
      
                                      v1 = 2.0 * l - v2;
      
                                      float d = 1.0 / 3.0;
                                      float r = hueToIntensity(v1, v2, h + d);
                                      float g = hueToIntensity(v1, v2, h);
                                      float b = hueToIntensity(v1, v2, h - d);
                                      return vec3(r, g, b);
                                  }
      
                                  void main() {
                                      vec4 c = vec4(1.0);
                                      c.rgb = HSLtoRGB(vec3(hue, 1.0 - qt_TexCoord0.t, qt_TexCoord0.s));
                                      fragColor = c * qt_Opacity;
                                  }
                                  " : "
                                  varying mediump vec2 qt_TexCoord0;
                                  uniform highp float qt_Opacity;
                                  uniform highp float hue;
      
                                  highp float hueToIntensity(highp float v1, highp float v2, highp float h) {
                                      h = fract(h);
                                      if (h < 1.0 / 6.0)
                                          return v1 + (v2 - v1) * 6.0 * h;
                                      else if (h < 1.0 / 2.0)
                                          return v2;
                                      else if (h < 2.0 / 3.0)
                                          return v1 + (v2 - v1) * 6.0 * (2.0 / 3.0 - h);
      
                                      return v1;
                                  }
      
                                  highp vec3 HSLtoRGB(highp vec3 color) {
                                      highp float h = color.x;
                                      highp float l = color.z;
                                      highp float s = color.y;
      
                                      if (s < 1.0 / 256.0)
                                          return vec3(l, l, l);
      
                                      highp float v1;
                                      highp float v2;
                                      if (l < 0.5)
                                          v2 = l * (1.0 + s);
                                      else
                                          v2 = (l + s) - (s * l);
      
                                      v1 = 2.0 * l - v2;
      
                                      highp float d = 1.0 / 3.0;
                                      highp float r = hueToIntensity(v1, v2, h + d);
                                      highp float g = hueToIntensity(v1, v2, h);
                                      highp float b = hueToIntensity(v1, v2, h - d);
                                      return vec3(r, g, b);
                                  }
      
                                  void main() {
                                      lowp vec4 c = vec4(1.0);
                                      c.rgb = HSLtoRGB(vec3(hue, 1.0 - qt_TexCoord0.t, qt_TexCoord0.s));
                                      gl_FragColor = c * qt_Opacity;
                                  }
                                  "
                          }
                      }
                  }
              }
          }
      
      }
      
      Qt 5.11.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.4.0 20160609) on "xcb" 
      OS: Ubuntu 16.04.4 LTS [linux version 4.13.0-37-generic]
      
      Architecture: x86_64; features: SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2
      
      Environment:
        QT4_IM_MODULE="xim"
        QT_ACCESSIBILITY="1"
        QT_IM_MODULE="ibus"
        QT_LINUX_ACCESSIBILITY_ALWAYS_ON="1"
        QT_QPA_PLATFORMTHEME="appmenu-qt5"
      
      Features: QT_NO_EXCEPTIONS
      
      Library info:
        PrefixPath: /home/mitch/dev/qt5.11-release/qtbase
        DocumentationPath: /home/mitch/dev/qt5.11-release/qtbase/doc
        HeadersPath: /home/mitch/dev/qt5.11-release/qtbase/include
        LibrariesPath: /home/mitch/dev/qt5.11-release/qtbase/lib
        LibraryExecutablesPath: /home/mitch/dev/qt5.11-release/qtbase/libexec
        BinariesPath: /home/mitch/dev/qt5.11-release/qtbase/bin
        PluginsPath: /home/mitch/dev/qt5.11-release/qtbase/plugins
        ImportsPath: /home/mitch/dev/qt5.11-release/qtbase/imports
        Qml2ImportsPath: /home/mitch/dev/qt5.11-release/qtbase/qml
        ArchDataPath: /home/mitch/dev/qt5.11-release/qtbase
        DataPath: /home/mitch/dev/qt5.11-release/qtbase
        TranslationsPath: /home/mitch/dev/qt5.11-release/qtbase/translations
        ExamplesPath: /home/mitch/dev/qt5.11-release/qtbase/examples
        TestsPath: /home/mitch/dev/qt5.11-release/qtbase/tests
        SettingsPath: /home/mitch/dev/qt5.11-release/qtbase
      
      Standard paths [*...* denote writable entry]:
        DesktopLocation: "Desktop" */home/mitch/Desktop*
        DocumentsLocation: "Documents" */home/mitch/Documents*
        FontsLocation: "Fonts" */home/mitch/.local/share/fonts* /home/mitch/.fonts
        ApplicationsLocation: "Applications" */home/mitch/.local/share/applications* /usr/share/ubuntu/applications /usr/share/gnome/applications /usr/local/share/applications /usr/share/applications /var/lib/snapd/desktop/applications
        MusicLocation: "Music" */home/mitch/Music*
        MoviesLocation: "Movies" */home/mitch/Videos*
        PicturesLocation: "Pictures" */home/mitch/Pictures*
        TempLocation: "Temporary Directory" */tmp*
        HomeLocation: "Home" */home/mitch*
        AppLocalDataLocation: "Application Data" */home/mitch/.local/share/QtProject/qtdiag* /usr/share/ubuntu/QtProject/qtdiag /usr/share/gnome/QtProject/qtdiag /usr/local/share/QtProject/qtdiag /usr/share/QtProject/qtdiag /var/lib/snapd/desktop/QtProject/qtdiag
        CacheLocation: "Cache" */home/mitch/.cache/QtProject/qtdiag*
        GenericDataLocation: "Shared Data" */home/mitch/.local/share* /usr/share/ubuntu /usr/share/gnome /usr/local/share /usr/share /var/lib/snapd/desktop
        RuntimeLocation: "Runtime" */run/user/1000*
        ConfigLocation: "Configuration" */home/mitch/.config* /etc/xdg/xdg-ubuntu /usr/share/upstart/xdg /etc/xdg
        DownloadLocation: "Download" */home/mitch/Downloads*
        GenericCacheLocation: "Shared Cache" */home/mitch/.cache*
        GenericConfigLocation: "Shared Configuration" */home/mitch/.config* /etc/xdg/xdg-ubuntu /usr/share/upstart/xdg /etc/xdg
        AppDataLocation: "Application Data" */home/mitch/.local/share/QtProject/qtdiag* /usr/share/ubuntu/QtProject/qtdiag /usr/share/gnome/QtProject/qtdiag /usr/local/share/QtProject/qtdiag /usr/share/QtProject/qtdiag /var/lib/snapd/desktop/QtProject/qtdiag
        AppConfigLocation: "Application Configuration" */home/mitch/.config/QtProject/qtdiag* /etc/xdg/xdg-ubuntu/QtProject/qtdiag /usr/share/upstart/xdg/QtProject/qtdiag /etc/xdg/QtProject/qtdiag
      
      File selectors (increasing order of precedence):
        en_AU unix linux ubuntu
      
      Network:
        Using "OpenSSL 1.0.2g  1 Mar 2016", version: 0x1000207f
      
      Platform capabilities: ThreadedPixmaps OpenGL WindowMasks MultipleWindows ForeignWindows NonFullScreenWindows NativeWidgets WindowManagement SyncState RasterGLSurface SwitchableWidgetComposition
      
      Style hints:
        mouseDoubleClickInterval: 400
        mousePressAndHoldInterval: 800
        startDragDistance: 17
        startDragTime: 500
        startDragVelocity: 0
        keyboardInputInterval: 400
        keyboardAutoRepeatRate: 30
        cursorFlashTime: 1000
        showIsFullScreen: 0
        showIsMaximized: 0
        passwordMaskDelay: 0
        passwordMaskCharacter: U+2022
        fontSmoothingGamma: 1.7
        useRtlExtensions: 0
        setFocusOnTouchRelease: 0
        tabFocusBehavior: Qt::TabFocusBehavior(TabFocusAllControls) 
        singleClickActivation: 0
      
      Additional style hints (QPlatformIntegration):
        ReplayMousePressOutsidePopup: 0
      
      Theme:
        Platforms requested : gtk3,gnome,generic
                  available : flatpak
        Styles requested    : fusion,windows
               available    : Windows,Fusion
        Icon theme          : Adwaita, gnome from /usr/local/share/icons,/usr/share/icons
        System font         : "Sans Serif" 9
      
      Fonts:
        General font : "Sans Serif" 9
        Fixed font   : "monospace" 9
        Title font   : "DejaVu Sans" 12
        Smallest font: "DejaVu Sans" 12
      
      Palette:
        WindowText: #ff000000
        Button: #ffefefef
        Light: #ffffffff
        Midlight: #ffcbcbcb
        Dark: #ff9f9f9f
        Mid: #ffb8b8b8
        Text: #ff000000
        BrightText: #ffffffff
        ButtonText: #ff000000
        Base: #ffffffff
        Window: #ffefefef
        Shadow: #ff767676
        Highlight: #ff308cc6
        HighlightedText: #ffffffff
        Link: #ff0000ff
        LinkVisited: #ffff00ff
        AlternateBase: #fff7f7f7
        NoRole: #ff000000
        ToolTipBase: #ffffffdc
        ToolTipText: #ff000000
      
      Screens: 1, High DPI scaling: inactive
      # 0 "DP-2" Depth: 24 Primary: yes
        Manufacturer: Lenovo Group Limited
        Model: Pro2840m
        Serial number: V9016D44
        Geometry: 3840x2160+0+0 Available: 3726x2118+114+42
        Physical size: 621x341 mm  Refresh: 59 Hz Power state: 0
        Physical DPI: 157.063,160.891 Logical DPI: 168,168 Subpixel_None
        DevicePixelRatio: 1 Pixel density: 2
        Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
      
      LibGL Vendor: Intel Open Source Technology Center
      Renderer: Mesa DRI Intel(R) Haswell Desktop 
      Version: 3.0 Mesa 17.2.8
      Shading language: 1.30
      Format: Version: 3.0 Profile: 0 Swap behavior: 0 Buffer size (RGB): 8,8,8
      Profile: None (QOpenGLFunctions_3_0)
      

      Attachments

        Issue Links

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

          Activity

            People

              qt.team.quick.subscriptions Qt Quick and Widgets Team
              mitch_curtis Mitch Curtis
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes