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

QtQuick3D Vulkan Crash with ProceduralSkyTextureData on multiple View3Ds.

    XMLWordPrintable

Details

    • Windows

    Description

      In QtQuick3D, if there are multiple View3Ds that reference a scene, and those have an environment that uses ProceduralSkyTextureData, the overhead from creating the procedural sky can cause a GPU timeout, leading to the Vulkan device being lost and eventually a crash.

      On a Windows laptop with Intel UHD graphics, this will happen every time in a debugger, most of the time in RenderDoc, and never when running a release build.

      It seems there are two problems here:

      1. A slow operation in the main event loop should not cause the graphics device to be lost or the program to crash.
      2. ProceduralSkyTextureData is very inefficient internally – setting any property calls scheduleTextureUpdate(), but rather than doing the expensive texture generation as a background task as the function call suggests, it happens immediately. This also means that the texture gets generated once at startup for every property set plus once in the constructor.

       In the attached example project, a texture provider deliberately sleeps and regenerates its data.

      Attachments

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

        Activity

          People

            qt.team.graphics.and.multimedia Qt Graphics Team
            mahdi.belila Mehdi Belila
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes