Details
-
Bug
-
Resolution: Done
-
P2: Important
-
6.4
-
None
-
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.