As QQuickRenderControl docs state, beginFrame() and endFrame() must enclose sync() and render() calls.