Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
5.15.18
-
None
Description
Hello,
I developed a Qt/QML application for the Xilinx ZYNQMP platform with the following environment setup:
// code placeholder export QT_QPA_GENERIC_PLUGINS=libinput export QT_QPA_ENABLE_TERMINAL_KEYBOARD=1 export QT_QPA_PLATFORM=eglfs export QT_QPA_EGLFS_KMS_ATOMIC=1 export QT_QPA_EGLFS_FORCE888=1 export QT_QPA_EGLFS_INTEGRATION=eglfs_kms export QSG_INFO=1 export QT_DEBUG_PLUGINS=1 export QT_LOGGING_RULES=qt.qpa.*=true export QT_QPA_DEBUG=1 export QSG_RENDERER_DEBUG=render export QML_IMPORT_TRACE=1 export QT_QPA_EGLFS_DEBUG=1 export XDG_RUNTIME_DIR=/app export DISPLAY=:0.0
The application works fine most of the time. However, in very rare cases, QML rendering encounters a problem at runtime: the text in the QML Text component becomes a solid block and cannot be recovered.
The following picture shows that the text was displayed correctly.
The following picture shows that the QML cannot render the text correctly.
The problem is not easy to reproduce. Therefore, I have added more debug logs to the application.
Please refer to the attached normal.log and abnormal.log files.
And I also found the Qt doc said:
- A bug in the OpenGL driver related to framebuffer object (FBO) readbacks may corrupt rendered glyphs. If you set the QML_USE_GLYPHCACHE_WORKAROUND environment variable, Qt keeps an additional copy of the glyph in RAM. This means that performance is slightly lower when drawing glyphs that have not been drawn before, as Qt accesses the extra copy via the CPU. It also means that the glyph cache will use twice as much memory. The quality is not affected by this.
The OpenGL information:
// code placeholder 1. OpenGL version OpenGL ES 2.0 "67dc026" QStandardPaths: runtime directory '/usr/lib/' is not owned by UID 1001, but a directory permissions 0775 owned by UID 0 GID 0 Created context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile) with config: EGL_BUFFER_SIZE: 32 EGL_ALPHA_SIZE: 8 EGL_BLUE_SIZE: 8 EGL_GREEN_SIZE: 8 EGL_RED_SIZE: 8 EGL_DEPTH_SIZE: 24 EGL_STENCIL_SIZE: 8 EGL_CONFIG_CAVEAT: 12344 EGL_CONFIG_ID: 9 EGL_LEVEL: 0 EGL_MAX_PBUFFER_HEIGHT: 4096 EGL_MAX_PBUFFER_PIXELS: 16777216 EGL_MAX_PBUFFER_WIDTH: 4096 EGL_NATIVE_RENDERABLE: 1 EGL_NATIVE_VISUAL_ID: 875713089 EGL_NATIVE_VISUAL_TYPE: 0 EGL_SAMPLES: 0 EGL_SAMPLE_BUFFERS: 0 EGL_SURFACE_TYPE: 1031 EGL_TRANSPARENT_TYPE: 12344 EGL_TRANSPARENT_BLUE_VALUE: 0 EGL_TRANSPARENT_GREEN_VALUE: 0 EGL_TRANSPARENT_RED_VALUE: 0 EGL_BIND_TO_TEXTURE_RGB: 1 EGL_BIND_TO_TEXTURE_RGBA: 1 EGL_MIN_SWAP_INTERVAL: 0 EGL_MAX_SWAP_INTERVAL: 10 OpenGL ES 2.0 "67dc026" GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_compressed_ETC1_RGB8_texture GL_EXT_compressed_ETC1_RGB8_sub_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_depth24 GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_OES_vertex_half_float GL_EXT_blend_minmax GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_rgb8_rgba8 GL_EXT_multisampled_render_to_texture GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_ARM_mali_program_binary GL_EXT_shader_texture_lod GL_EXT_robustness GL_OES_depth_texture_cube_map GL_KHR_debug GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_mapbuffer GL_KHR_no_error 2. OpenGL libs -rwxr-xr-x 1 root root 419744 Mar 9 2018 libGLU.so.1.3.1 lrwxrwxrwx 1 root root 15 Mar 9 2018 libGLU.so.1 -> libGLU.so.1.3.1 lrwxrwxrwx 1 root root 15 Mar 9 2018 libGLU.so -> libGLU.so.1.3.1 lrwxrwxrwx 1 root root 14 Mar 9 2018 libGLESv2.so.2.0 -> libMali.so.9.0 lrwxrwxrwx 1 root root 16 Mar 9 2018 libGLESv2.so.2 -> libGLESv2.so.2.0 lrwxrwxrwx 1 root root 14 Mar 9 2018 libGLESv2.so -> libGLESv2.so.2 lrwxrwxrwx 1 root root 14 Mar 9 2018 libGLESv1_CM.so.1.1 -> libMali.so.9.0 lrwxrwxrwx 1 root root 19 Mar 9 2018 libGLESv1_CM.so.1 -> libGLESv1_CM.so.1.1 lrwxrwxrwx 1 root root 17 Mar 9 2018 libGLESv1_CM.so -> libGLESv1_CM.so.1 -rwxr-xr-x 1 root root 625304 Mar 9 2018 libGL.so.1.2.0 lrwxrwxrwx 1 root root 14 Mar 9 2018 libGL.so.1 -> libGL.so.1.2.0 lrwxrwxrwx 1 root root 10 Mar 9 2018 libGL.so -> libGL.so.1 lrwxrwxrwx 1 root root 14 Mar 9 2018 libEGL.so.1.4 -> libMali.so.9.0 lrwxrwxrwx 1 root root 13 Mar 9 2018 libEGL.so.1 -> libEGL.so.1.4 lrwxrwxrwx 1 root root 11 Mar 9 2018 libEGL.so -> libEGL.so.1 drwxr-xr-x 3 root root 4096 Mar 9 2018 glib-2.0 -rwxr-xr-x 1 root root 6065776 Dec 2 17:15 libglib-2.0.so.0.6400.5 lrwxrwxrwx 1 root root 23 Dec 2 17:15 libglib-2.0.so.0 -> libglib-2.0.so.0.6400.5 lrwxrwxrwx 1 root root 16 Dec 2 17:15 libglib-2.0.so -> libglib-2.0.so.0
Dose it relate to this issue? And how can I debug it?
Thanks and regards.