Important: Please read the Qt Code of Conduct -

QML frame delay is unexpectedly big on windows 10

  • Hello, I am trying to use QML to present visual stimulus in EEG experiments, that's why I am interested in measuring and reducing the time between the moment when the frame was prepared and the frame being presented on a screen. I created very simple blinking scene and recording the time of QQuickWindow::frameSwapped() event, in parallel I record the physical sensor looking at the screen, and I see that difference between frameSwapped and image appeared on a screen is very high.
    I am using windows 10 mingw version and I tried QSG_RHI=1 and QSG_RHI configurations. The first one gives me a stable delay of 120 ms+-4ms, and the second one gives me something like 75+-4ms or 90+-4ms with 90ms 98% of the time. I tried with a several monitors including regular 60Hz and 144Hz and I have a very consisten measurements between the runs.
    I was thinking that is is something in my code, but after number of tests that is what I learned:
    120 ms I also have with other GUI applications actually. It is possible to have delay of 45 ms if it is an application which use OpenGL in a fullscreen mode, so I am assuming that it's a win10 compositor doing such a delay.
    However, if I do use fullscreen mode in QML window is is "borderless window fullscreen" which is not avoiding win10 compositor.
    Is it possible to run QML in real fullscreen mode? Or maybe you know other way to improve the delay between QML and a screen update?
    I know that this delay is a number of many components, including lags in a screen, videocard, my measuring device and so on, however I tried similar thing several years ago on win7 and I managed to achieve single frame delay there, or 2-3 frames in bad weather scenarios, and these 6-8 frames delays are not very comfortable for me.

Log in to reply