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

QSGRenderNode / View3D's Inline mode has no way to gain access to the render target/pass descriptor when within an item layer

    XMLWordPrintable

Details

    • d63ac8907f (qt/qtquick3d/dev) c57f626ef2 (qt/qtquick3d/6.4) c57f626ef2 (qt/qtquick3d/6.4.0) c57f626ef2 (qt/tqtc-qtquick3d/6.4.0) c57f626ef2 (qt/qtquick3d/6.4.1)

    Description

      qtquick3d\tests\auto\quick3d_lancelot\data\custommaterial> qml lightmapgen_source_invisible_inline.qml

       

      vkDebug: Validation: 0: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0x2e2cd000000002b, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xcb3ee80000000007, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed: RenderPasses incompatible between active render pass w/ VkRenderPass 0x2e2cd000000002b[] and pipeline state object w/ VkRenderPass 0xcb3ee80000000007[] Attachment 0 is not compatible with 0: They have different formats.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)

      vkDebug: Validation: 0: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0x2e2cd000000002b, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0xcb3ee80000000007, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed: RenderPasses incompatible between active render pass w/ VkRenderPass 0x2e2cd000000002b[] with a dependencyCount of 0 and pipeline state object w/ VkRenderPass 0xcb3ee80000000007[] with a dependencyCount of 2. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)

       

      The key is to have an Item with layer.enabled: true and then have a QSGRenderNode that does some rendering inline within that subtree with QRhi (or directly with a native API). How would it know what the current renderpass descriptor (QRhiRenderPassDescriptor or the native equivalent, if any) is? It can only query the main one from the window via QSGRendererInterface.

       

      Attachments

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

        Activity

          People

            lagocs Laszlo Agocs
            lagocs Laszlo Agocs
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes