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

Vulkan backend rendering only black on X11

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.7.0 RC
    • WebEngine
    • None
    • Linux/X11

    Description

      When I run QSG_RHI_BACKEND=vulkan ./simplebrowser on v6.7.0-rc1 the web contents only render as a pure black void. I can still copy and paste from the page and moving the mouse over elements still makes the cursor change if they are clickable/text etc.

      Everything renders as expected with the default OpenGL backend.

      I've made a few builds around this change and I'm pretty this is the cause: https://codereview.qt-project.org/c/qt/qtwebengine/+/509812
      I don't know how to debug that change further to see what part of it isn't working here though.

      I haven't tested on Wayland, I tried to test in Weston-under-X11 but it segfaulted with "CreateSharedImage: could not create backing.", which I assume is a somewhat unrelated issue with vulkan on wayland (or I'm not using the right chrome CLI args).

      I'm on AMD open source graphics and someone on IRC reported the same issue on NVIDIA

      I'm not seeing any error or warning logs, the console output is:

      qt.webenginecontext:
      
      Chromium GL Backend: desktop
      Surface Type: OpenGL
      Surface Profile: CompatibilityProfile
      Surface Version: 4.6
      QSG RHI Backend: Vulkan
      Using Supported QSG Backend: yes
      Using Software Dynamic GL: no
      Using Shared GL: yes
      Init Parameters:
        *  application-name simplebrowser
        *  browser-subprocess-path /usr/local/Qt-6.7-rc/libexec/QtWebEngineProcess
        *  create-default-gl-context
        *  disable-blink-features EyeDropperAPI
        *  disable-features ConsolidatedMovementXY,InstalledApp,EyeDropper,BackgroundFetch,WebOTP,WebPayments,WebUSB
        *  disable-setuid-sandbox
        *  disable-speech-api
        *  enable-features NetworkServiceInProcess2,TracingServiceInProcess,Vulkan
        *  in-process-gpu
        *  use-gl desktop
        *  use-vulkan native
      
      Path override failed for key base::DIR_APP_DICTIONARIES and path '/mnt/slow/user/qt6.2/qtwebengine/examples6.7/webenginewidgets/simplebrowser/qtwebengine_dictionaries'
      Path override failed for key base::DIR_APP_DICTIONARIES and path '/usr/local/Qt-6.7-rc/libexec/qtwebengine_dictionaries'
      Path override failed for key base::DIR_APP_DICTIONARIES and path '/usr/local/Qt-6.7-rc/libexec/qtwebengine_dictionaries'
      

      On an unrelated note, apart from being my motivation for testing this, I've been using the vulkan backend with hardware accelerated video decoding using a build from the 6.7 branch from December and it's been working great! I'm on amd so I had to patch mesa (with !26165 and for chrome < 119 !23214) but all the crashes in the amd driver that seemed to happen when using the previous chrome OpenGL based hardware acceleration are gone. The only issue I'm having with it currently is that high GPU usage after resuming from suspend.

      Attachments

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

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            toofar toofar
            Votes:
            7 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes