[Interest] Low frame rate in rendering custom opengl code in Qt Quick

Daljit Singh daljit97 at live.com
Wed Jan 5 03:04:34 CET 2022


Hi, I'm using a third party library (Skia) to render custom opengl code in sync with the QtQuick Scene Graph (Qt 5.15 on Windows 11).
I'm using the QQuickFramebufferObject and QSGRenderNode classes to create custom QQuickItems to render my scene. The approach works fine, but I've come across a very strange issue that I'm unable to solve. The problem consists in a sudden unrecoverable drop in FPS during the rendering of my scene. I've noticed that the issue presents itself whenever the rendering frame time jumps above a certain threshold (most of the times my app is able to render at 60fps, but there are times when there is a lot of content to render). When this happens, the frame rate no longer jumps back to 60 fps as expected, but instead is remains weirdly low (less than 10 fps) for the remaning time of the session. This is despite the fact on subsequent draw calls I render nothing in my opengl scene.
Doing some logging with the helper logging categories provided by Qt, I can see that the scene graph that the render time is fine most of the time, but the logs consistently report an unusally high sync time in the threaded render loop. An example log message shows (other frame logs show similar times):

> Debug: time in renderer: total=4ms, preprocess=0, updates=0, binding=0, rendering=4 (scenegraph\coreapi\qsgrenderer.cpp:281, void __cdecl QSGRenderer::renderScene(const class QSGBindable &))
> Debug: Frame rendered with 'threaded' renderloop in 134ms, sync=129, render=4, swap=1 - (on render thread) (scenegraph\qsgthreadedrenderloop.cpp:902, void __cdecl QSGRenderThread::syncAndRender(class QImage *))

Has anyone got any clue about what might be going here?

Best Regards,
Daljit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20220105/043524e0/attachment.htm>


More information about the Interest mailing list