diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp index 838251ed081a56101b76d9556a3452c2868164b0..2f94bad75d80fb71244127e32cad417a44c74f76 100644 --- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp +++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp @@ -460,12 +460,18 @@ void Updater::visitGeometryNode(Node *n) if (e->root) { BatchRootInfo *info = renderer->batchRootInfo(e->root); - info->availableOrders--; - if (info->availableOrders < 0) { - renderer->m_rebuild |= Renderer::BuildRenderLists; - } else { - renderer->m_rebuild |= Renderer::BuildRenderListsForTaggedRoots; - renderer->m_taggedRoots << e->root; + while (info != 0) { + info->availableOrders--; + if (info->availableOrders < 0) { + renderer->m_rebuild |= Renderer::BuildRenderLists; + } else { + renderer->m_rebuild |= Renderer::BuildRenderListsForTaggedRoots; + renderer->m_taggedRoots << e->root; + } + if (info->parentRoot != 0) + info = renderer->batchRootInfo(info->parentRoot); + else + info = 0; } } else { renderer->m_rebuild |= Renderer::FullRebuild;