In the documentation it says when the scene graph is rendered and the signal "beforeRendering()" is emitted, applications can make direct connections (using Qt::DirectConnection) to this signal to use custom OpenGL calls which will then stack visually beneath the QML scene. The documentation says that this allows making opengl calls directly into the same context as the scene graph is. My question is, what is the difference between directly rendering into the screenbuffer (native opengl) and making opengl calls into the same context as the qquick scene graph. Is there another abstraction layer when using qt and what exactly is happening there? And how does this affect the performance of the rendering (copy operations?)?

When the qquick scene graph is traversed during the rendering process, can multiple scene graph nodes be visited in parallel or is the graph traversed in a sequential fashion? If not, would a parallel processing of the scene graph be somehow possible if manual render control is used to set up a manual scene graph?