Qt 5.3.2: разрывы экрана после запуска приложения Quick 2.0 от eglfs на TI AM335x

Мы получили разрыв экрана после 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 минут после запуска приложения.

Есть ли у кого-нибудь какие-либо намеки или предложения о том, как устранить разрывы?


person wthung    schedule 28.10.2014    source источник


Ответы (1)


Я неправильно понимаю значение слова "разрыв". На самом деле моя ситуация связана с тем, что гашение консоли фреймбуфера упоминается в этой ссылке .

Решение состоит в том, чтобы отключить гашение с помощью загрузочного параметра ядра «consoleblank = 0».

person wthung    schedule 04.11.2014