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, 6.8.0, 6.9.0 RC
    • WebEngine
    • None
    • Linux/X11
    • f88fa0c83 (dev), b829ca7c3 (6.9), bbf9599da (6.8)

    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

        Issue Links

          For Gerrit Dashboard: QTBUG-123607
          # Subject Branch Project Status CR V

          Activity

            People

              pvarga Peter Varga
              toofar toofar
              Votes:
              7 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated: