Мы получили разрыв экрана после 10 минут работы примера часов Qt5 от eglfs. Поведение до 10 минут выглядит хорошо, но после этого продолжает появляться предупреждающее сообщение:
Could not wait for vsync.
Мы увидели это сообщение, потому что делаем:
export QT_QPA_EGLFS_FORCEVSYNC=1
Информация QSurfaceFormat:
Created context for format QSurfaceFormat(version 2.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile 0) with config:
EGL_BUFFER_SIZE: 16
EGL_ALPHA_SIZE: 0
EGL_BLUE_SIZE: 5
EGL_GREEN_SIZE: 6
EGL_RED_SIZE: 5
EGL_DEPTH_SIZE: 24
EGL_STENCIL_SIZE: 8
EGL_CONFIG_CAVEAT: 12344
EGL_CONFIG_ID: 8
EGL_LEVEL: 0
EGL_MAX_PBUFFER_HEIGHT: 2048
EGL_MAX_PBUFFER_PIXELS: 4194304
EGL_MAX_PBUFFER_WIDTH: 2048
EGL_NATIVE_RENDERABLE: 0
EGL_NATIVE_VISUAL_ID: 0
EGL_NATIVE_VISUAL_TYPE: 0
EGL_SAMPLES: 0
EGL_SAMPLE_BUFFERS: 0
EGL_SURFACE_TYPE: 7
EGL_TRANSPARENT_TYPE: 12344
EGL_TRANSPARENT_BLUE_VALUE: 0
EGL_TRANSPARENT_GREEN_VALUE: 0
EGL_TRANSPARENT_RED_VALUE: 0
EGL_BIND_TO_TEXTURE_RGB: 0
EGL_BIND_TO_TEXTURE_RGBA: 0
EGL_MIN_SWAP_INTERVAL: 1
EGL_MAX_SWAP_INTERVAL: 1
Проверяя исходный код Qt, мы знаем, что установка QT_QPA_EGLFS_FORCEVSYNC в 1 позволит Qt выполнять ioctl для FBIO_WAITFORVSYNC. ioctl возвращает успех до 10 минут после запуска приложения.
Есть ли у кого-нибудь какие-либо намеки или предложения о том, как устранить разрывы?