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
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest