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

Qt3D in combination with QtWebEngine crashes on Intel GPU

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.13.0, 5.13.1, 5.13.2, 5.14.1, 5.15.0, 5.15
    • Fix Version/s: None
    • Component/s: Qt3D, WebEngine, WebView
    • Labels:
      None
    • Environment:
      Platform: Windows 10
      GPU: Intel HD 530, Intel UHD 630
    • Platform/s:
      Windows

      Description

      Using Qt3D alongside with QtWebEngine in the same application leads to rendering artifacts/crashes on systems with Intel Graphics Cards. As you can see in the attachments, the NVIDIA GPU renders everything as wanted. With the Intel GPU the application renders artifacts (it's flickering) and at some time it crashes.

      NVIDIA:                                            INTEL:

            

       

      We thought the problem of setting a second defaultSurfaceFormat during the Qt3DWindow construction led to the problem (see QTBUG-60614). But we already compiled a modified version for ourselves which doesn't work either. 

      Furthermore we tried setting different application attributes like AA_ShareOpenGLContexts, AA_UseSoftwareGL etc. but all options didn't solve the problem. 

      Disabling the intel graphics card and using the NVIDIA instead does not lead to the said issues. But we need a solution for all kinds of GPU. 

       

      If you want to reproduce the problem very fast, you can use the qt3d/basicshapes-cpp project in the QtExamples and adjust the code the following way:

      main.cpp

      ...
      #include <QtWebEngineWidgets/QWebEngineView>          //<- include headers
      ...
      int main(int argc, char **argv)
      {
          QApplication app(argc, argv);
          Qt3DExtras::Qt3DWindow *view = new Qt3DExtras::Qt3DWindow();
          ...
           
          QWebEngineView* webview = new QWebEngineView();   //<- create QWebEngineView
          webview->setUrl(QUrl("https://qt.io"));           //<- set URL
      
          QWidget *widget = new QWidget;
          QHBoxLayout *hLayout = new QHBoxLayout(widget);
          QVBoxLayout *vLayout = new QVBoxLayout();
          vLayout->setAlignment(Qt::AlignTop);
          hLayout->addWidget(container, 1);
          hLayout->addWidget(webview, 1);                   //<- add webview to hLayout
          hLayout->addLayout(vLayout);
          ...
      }

       basicshapes-cpp.pro: (add webenginewidgets to pro file)

      ...
      QT += 3dcore 3drender 3dinput 3dextras webenginewidgets 
      ...

       Related: QTBUG-60614

       

        Attachments

        1. qt_intel.png
          qt_intel.png
          86 kB
        2. qt_intel2.png
          qt_intel2.png
          101 kB
        3. qt_nivida.png
          qt_nivida.png
          145 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            seanharmer Sean Harmer
            Reporter:
            mbaldus Maximilian Baldus
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes