Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
6.2.7, 6.2, 6.4.2, 6.5.0 Beta1
-
6.2
-
None
-
fba78e59e9 (qt/qtquick3d/dev) fba78e59e9 (qt/tqtc-qtquick3d/dev) 2c1d7714ba (qt/tqtc-qtquick3d/6.2) e979268dc3 (qt/qtquick3d/6.4) e979268dc3 (qt/tqtc-qtquick3d/6.4) 2c1d7714ba (qt/tqtc-qtquick3d/6.2.7)
-
2022 Qt Quick 3D: Week 19-20, 2022 Qt Quick 3D: Week 21-22
Description
Running the quickitems example now gives this when exiting: (here was run with Vulkan + QSG_RHI_DEBUG_LAYER=1 + QT_RHI_LEAK_CHECK=1)
[11464] vkDebug: Validation: 0: Validation Error: [ VUID-vkDestroyDevice-device-00378 ] Object 0: handle = 0x230d5cebe48, type = VK_OBJECT_TYPE_DEVICE; Object 1: handle = 0xd7fb100000000b4, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x71500fba | OBJ ERROR : For VkDevice 0x230d5cebe48[], VkRenderPass 0xd7fb100000000b4[] has not been destroyed. The Vulkan spec states: All child objects created on device must have been destroyed prior to destroying device (https://vulkan.lunarg.com/doc/view/1.2.162.0/windows/1.2-extensions/vkspec.html#VUID-vkDestroyDevice-device-00378) [11464] vkDebug: Validation: 0: Validation Error: [ VUID-vkDestroyDevice-device-00378 ] Object 0: handle = 0x230d5cebe48, type = VK_OBJECT_TYPE_DEVICE; Object 1: handle = 0xf6c3d10000000094, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x71500fba | OBJ ERROR : For VkDevice 0x230d5cebe48[], VkRenderPass 0xf6c3d10000000094[] has not been destroyed. The Vulkan spec states: All child objects created on device must have been destroyed prior to destroying device (https://vulkan.lunarg.com/doc/view/1.2.162.0/windows/1.2-extensions/vkspec.html#VUID-vkDestroyDevice-device-00378) [11464] vkDebug: Validation: 0: Validation Error: [ VUID-vkDestroyDevice-device-00378 ] Object 0: handle = 0x230d5cebe48, type = VK_OBJECT_TYPE_DEVICE; Object 1: handle = 0x3a495f000000005a, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x71500fba | OBJ ERROR : For VkDevice 0x230d5cebe48[], VkRenderPass 0x3a495f000000005a[] has not been destroyed. The Vulkan spec states: All child objects created on device must have been destroyed prior to destroying device (https://vulkan.lunarg.com/doc/view/1.2.162.0/windows/1.2-extensions/vkspec.html#VUID-vkDestroyDevice-device-00378) [11464] QRhi 0x230d3394d20 going down with 3 unreleased resources that own native graphics objects. This is not nice. [11464] RenderPassDescriptor resource 0x230df7c5660 () [11464] RenderPassDescriptor resource 0x230df7f5d90 () [11464] RenderPassDescriptor resource 0x230db0fa9c0 ()
Actually this is not new. It's because what https://codereview.qt-project.org/c/qt/qtquick3d/+/339852 tried to fix, but then was never revisited: some backend nodes, here the QSSGRenderItem2D, are not destroyed (the destructor never runs), hence the objects owned by it are leaked too.