On some devices the Plasma Mobile applications don't render correectly
Open, NormalPublic

Description

Output of qmlscene helloworld.qml with full Qt debug output enabled.

Using Wayland-EGL
library "libgui.so" wasn't loaded and RTLD_NOLOAD prevented it
qt.quick.hover.trace: QQuickText(0xb22d38, parent=0x0, geometry=0,0 0x0) false -> false
qt.scenegraph.general: threaded render loop
qt.scenegraph.general: Using sg animation driver
qt.scenegraph.general: Animation Driver: using vsync: 16.67 ms
Using the 'wl-shell' shell integration
qt.scenegraph.renderloop: exposureChanged() QQuickView(0xb40088)
qt.scenegraph.renderloop: handleExposure() QQuickView(0xb40088)
qt.scenegraph.renderloop: - adding window to list
qt.scenegraph.renderloop: - starting render thread
qt.scenegraph.renderloop: - OpenGL context created
qt.scenegraph.renderloop: polishAndSync (in expose) QQuickView(0xb40088)
qt.scenegraph.renderloop: - lock for sync
qt.scenegraph.renderloop: - wait for sync
qt.scenegraph.renderloop:                     (RT) run()
qt.scenegraph.general: Using sg animation driver
qt.scenegraph.general: Animation Driver: using vsync: 16.67 ms
qt.scenegraph.renderloop:                     (RT) syncAndRender()
qt.scenegraph.renderloop:                     (RT) - rendering started
qt.scenegraph.renderloop:                     (RT) - window not ready, skipping render
qt.scenegraph.renderloop:                     (RT) - rendering done
qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 0ms, sync=0, render=0, swap=0 - (on render thread)
qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
qt.scenegraph.renderloop:                     (RT) WM_RequestSync
qt.scenegraph.renderloop:                     (RT) - triggered from expose
qt.scenegraph.renderloop:                     (RT) - repaint regardless
qt.scenegraph.renderloop:                     (RT) --- done processEvents()
qt.scenegraph.general: texture atlas dimensions: 512x512
qt.scenegraph.general: R/G/B/A Buffers:    5 6 5 0
qt.scenegraph.general: Depth Buffer:       24
qt.scenegraph.general: Stencil Buffer:     8
qt.scenegraph.general: Samples:            0
qt.scenegraph.general: GL_VENDOR:          Qualcomm
qt.scenegraph.general: GL_RENDERER:        Adreno (TM) 505
qt.scenegraph.general: GL_VERSION:         OpenGL ES 2.0 (OpenGL ES 3.2 V@145.0 (GIT@I23cc4685e6))
qt.scenegraph.general: GL_EXTENSIONS:      GL_OES_shader_image_atomic GL_OES_framebuffer_object GL_EXT_color_buffer_float GL_EXT_geometry_shader GL_OES_EGL_sync GL_OES_sample_variables GL_OES_packed_depth_stencil GL_KHR_debug GL_KHR_no_error GL_OES_compressed_ETC1_RGB8_texture GL_EXT_texture_border_clamp GL_EXT_multisampled_render_to_texture GL_OES_EGL_image_external_essl3 GL_QCOM_alpha_test GL_OVR_multiview GL_EXT_tessellation_shader GL_OES_texture_3D GL_OES_texture_half_float_linear GL_EXT_primitive_bounding_box GL_KHR_blend_equation_advanced GL_OES_shader_multisample_interpolation GL_OES_surfaceless_context GL_EXT_texture_format_BGRA8888 GL_KHR_texture_compression_astc_hdr GL_EXT_texture_type_2_10_10_10_REV GL_OES_EGL_image GL_OES_rgb8_rgba8 GL_OES_texture_half_float GL_QCOM_tiled_rendering GL_EXT_draw_buffers_indexed GL_OES_sample_shading GL_EXT_texture_buffer GL_EXT_debug_marker GL_EXT_copy_image GL_EXT_texture_cube_map_array GL_OES_EGL_image_external GL_EXT_texture_filter_anisotropic GL_EXT_sRGB_write_control GL_EXT_shader_framebuffer_fetch GL_EXT_debug_label GL_OES_texture_npot GL_OES_texture_storage_multisample_2d_array GL_OVR_multiview_multisampled_render_to_texture  GL_EXT_color_buffer_half_float GL_OES_vertex_half_float GL_OES_depth24 GL_EXT_gpu_shader5 GL_EXT_texture_sRGB_decode GL_AMD_compressed_ATC_texture GL_EXT_buffer_storage GL_OES_standard_derivatives GL_KHR_texture_compression_astc_ldr GL_OES_depth_texture GL_EXT_disjoint_timer_query GL_EXT_shader_io_blocks GL_EXT_robustness GL_OVR_multiview2 GL_OES_element_index_uint GL_KHR_blend_equation_advanced_coherent GL_OES_texture_compression_astc GL_OES_depth_texture_cube_map GL_EXT_discard_framebuffer GL_ARM_shader_framebuffer_fetch_depth_stencil GL_EXT_clip_cull_distance GL_OES_texture_float GL_OES_get_program_binary GL_EXT_YUV_target GL_EXT_texture_sRGB_R8 GL_EXT_shader_non_constant_global_initializers GL_OES_vertex_array_object GL_EXT_blit_framebuffer_params GL_OES_texture_stencil8 GL_OES_texture_float_linear GL_EXT_texture_norm16 GL_EXT_sRGB GL_ANDROID_extension_pack_es31a
qt.scenegraph.general: Max Texture Size:  16384
qt.scenegraph.general: Debug context:     false
qt.scenegraph.renderloop:                     (RT) syncAndRender()
qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
qt.scenegraph.renderloop:                     (RT) sync()
qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
qt.quick.dirty:    QSGNode: QQuickRootItem(0xb0dd68, parent=0x0, geometry=0,0 159x36) Size|ChildrenChanged
qt.quick.dirty:    QSGNode: QQuickText(0xb22d38, parent=0xb0dd68, geometry=0,0 159x36) Size|Content|ParentChanged|Window
qt.scenegraph.renderloop:                     (RT) - renderer was created
qt.scenegraph.renderloop:                     (RT) - rendering started
qt.scenegraph.time.glyph: distancefield: 8 glyphs prepared in 3ms, rendering=2, upload=1
qt.opengl.diskcache: OpenGL ES v2 context
qt.opengl.diskcache: Shader cache supported = 0
qt.scenegraph.time.compilation: shader compiled in 19ms
qt.scenegraph.time.renderer: time in renderer: total=25ms, preprocess=3, updates=0, binding=0, rendering=22
qt.scenegraph.renderloop:                     (RT) - rendering done
qt.scenegraph.renderloop:                     (RT) - wake Gui after initial expose
qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 33ms, sync=5, render=25, swap=2 - (on render thread)
qt.scenegraph.renderloop: - unlock after sync
qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
qt.scenegraph.renderloop:                     (RT) --- done processEvents()
qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=53, animations=0 - (on Gui thread) QQuickView(0xb40088)
qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
qt.scenegraph.renderloop: - done with handleExposure()
qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
qt.scenegraph.renderloop: update from item QQuickView(0xb40088)
qt.scenegraph.renderloop: update from item QQuickView(0xb40088)
qt.scenegraph.renderloop: update from item QQuickView(0xb40088)
qt.scenegraph.renderloop: update from item QQuickView(0xb40088)
qt.scenegraph.renderloop: exposureChanged() QQuickView(0xb40088)
qt.scenegraph.renderloop: handleExposure() QQuickView(0xb40088)
qt.scenegraph.renderloop: - render thread already running
qt.scenegraph.renderloop: polishAndSync (in expose) QQuickView(0xb40088)
qt.scenegraph.renderloop: - lock for sync
qt.scenegraph.renderloop: - wait for sync
qt.scenegraph.renderloop:                     (RT) WM_RequestSync
qt.scenegraph.renderloop:                     (RT) - triggered from expose
qt.scenegraph.renderloop:                     (RT) --- done processEventsAndWaitForMore()
qt.scenegraph.renderloop:                     (RT) syncAndRender()
qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
qt.scenegraph.renderloop:                     (RT) sync()
qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
qt.quick.dirty:    QSGNode: QQuickRootItem(0xb0dd68, parent=0x0, geometry=0,0 720x1070) Size
qt.quick.dirty:    QSGNode: QQuickText(0xb22d38, parent=0xb0dd68, geometry=0,0 720x1070) Size
qt.scenegraph.renderloop:                     (RT) - rendering started
qt.scenegraph.time.renderer: time in renderer: total=7ms, preprocess=0, updates=0, binding=0, rendering=7
qt.scenegraph.renderloop:                     (RT) - rendering done
qt.scenegraph.renderloop:                     (RT) - wake Gui after initial expose
qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 8ms, sync=0, render=7, swap=1 - (on render thread)
qt.scenegraph.renderloop: - unlock after sync
qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
qt.scenegraph.renderloop:                     (RT) --- done processEvents()
qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=8, animations=0 - (on Gui thread) QQuickView(0xb40088)
qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
qt.scenegraph.renderloop: - done with handleExposure()
qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
qt.scenegraph.renderloop: exposureChanged() QQuickView(0xb40088)
qt.scenegraph.renderloop: handleExposure() QQuickView(0xb40088)
qt.scenegraph.renderloop: - render thread already running
qt.scenegraph.renderloop: polishAndSync (in expose) QQuickView(0xb40088)
qt.scenegraph.renderloop: - lock for sync
qt.scenegraph.renderloop: - wait for sync
qt.scenegraph.renderloop:                     (RT) WM_RequestSync
qt.scenegraph.renderloop:                     (RT) - triggered from expose
qt.scenegraph.renderloop:                     (RT) --- done processEventsAndWaitForMore()
qt.scenegraph.renderloop:                     (RT) syncAndRender()
qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
qt.scenegraph.renderloop:                     (RT) sync()
qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
qt.scenegraph.renderloop:                     (RT) - rendering started
qt.scenegraph.time.renderer: time in renderer: total=0ms, preprocess=0, updates=0, binding=0, rendering=0
qt.scenegraph.renderloop:                     (RT) - rendering done
qt.scenegraph.renderloop:                     (RT) - wake Gui after initial expose
qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 16ms, sync=0, render=1, swap=15 - (on render thread)
qt.scenegraph.renderloop: - unlock after sync
qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
qt.scenegraph.renderloop:                     (RT) --- done processEvents()
qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=16, animations=0 - (on Gui thread) QQuickView(0xb40088)
qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
qt.scenegraph.renderloop: - done with handleExposure()
qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
qt.scenegraph.renderloop: - polish and sync update request
qt.scenegraph.renderloop: polishAndSync (normal) QQuickView(0xb40088)
qt.scenegraph.renderloop: - lock for sync
qt.scenegraph.renderloop: - wait for sync
qt.scenegraph.renderloop:                     (RT) WM_RequestSync
qt.scenegraph.renderloop:                     (RT) --- done processEventsAndWaitForMore()
qt.scenegraph.renderloop:                     (RT) syncAndRender()
qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
qt.scenegraph.renderloop:                     (RT) sync()
qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
qt.scenegraph.renderloop:                     (RT) - sync complete, waking Gui
qt.scenegraph.renderloop:                     (RT) - no changes, render aborted
qt.scenegraph.renderloop: - unlock after sync
qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=0, animations=0 - (on Gui thread) QQuickView(0xb40088)
qt.quick.focus: QQuickWindowPrivate::setFocusInScope():
qt.quick.focus:     scope: QObject(0x0)
qt.quick.focus:     item: QQuickRootItem(0xb0dd68)
qt.quick.focus:     activeFocusItem: QObject(0x0)
qt.qpa.input.methods: virtual void QtWaylandClient::QWaylandInputContext::update(Qt::InputMethodQueries) QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle)
qt.qpa.input.methods: virtual void QtWaylandClient::QWaylandInputContext::update(Qt::InputMethodQueries) QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle)
qt.qpa.input.methods: virtual void QtWaylandClient::QWaylandInputContext::setFocusObject(QObject*)
qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
qt.scenegraph.renderloop:                     (RT) --- done processEvents()
qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
qt.scenegraph.renderloop: exposureChanged() QQuickView(0xb40088)
qt.scenegraph.renderloop: handleObscurity() QQuickView(0xb40088)
qt.scenegraph.renderloop:                     (RT) WM_Obscure
qt.scenegraph.renderloop:                     (RT) - window removed
qt.scenegraph.renderloop: hide() QQuickView(0xb40088)
qt.scenegraph.renderloop: releaseResources() in api-call QQuickView(0xb40088)
qt.scenegraph.renderloop: - posting release request to render thread
qt.scenegraph.renderloop:                     (RT) WM_TryRelease
qt.scenegraph.renderloop:                     (RT) - setting exit flag and invalidating OpenGL
qt.scenegraph.renderloop:                     (RT) invalidateOpenGL()
qt.scenegraph.renderloop:                     (RT) - persistent SG, avoiding cleanup
qt.scenegraph.renderloop:                     (RT) --- done processEventsAndWaitForMore()
qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
qt.scenegraph.renderloop:                     (RT) --- done processEvents()
qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
qt.scenegraph.renderloop: update from item QQuickView(0xb40088)
qt.scenegraph.renderloop: update from item QQuickView(0xb40088)
qt.scenegraph.renderloop: update from item QQuickView(0xb40088)
qt.scenegraph.renderloop: begin windowDestroyed() QQuickWindow(0xb40088)
qt.scenegraph.renderloop: handleObscurity() QQuickWindow(0xb40088)
qt.scenegraph.renderloop:                     (RT) WM_Obscure
qt.scenegraph.renderloop: releaseResources() in destructor QQuickWindow(0xb40088)
qt.scenegraph.renderloop: - using fallback surface
qt.scenegraph.renderloop: - posting release request to render thread
qt.scenegraph.renderloop:                     (RT) WM_TryRelease
qt.scenegraph.renderloop:                     (RT) - setting exit flag and invalidating OpenGL
qt.scenegraph.renderloop:                     (RT) invalidateOpenGL()
qt.scenegraph.renderloop:                     (RT) sceneGraphChanged
qt.scenegraph.renderloop: update from item QQuickWindow(0xb40088)
qt.scenegraph.renderloop: - on render thread
qt.scenegraph.renderloop:                     (RT) - invalidating scene graph
qt.scenegraph.renderloop:                     (RT) - invalidated OpenGL
qt.scenegraph.renderloop:                     (RT) --- done processEventsAndWaitForMore()
qt.scenegraph.renderloop:                     (RT) run() completed
qt.scenegraph.renderloop:  - waiting for render thread to exit QQuickWindow(0xb40088)
qt.scenegraph.renderloop:  - render thread finished QQuickWindow(0xb40088)
qt.scenegraph.renderloop: done windowDestroyed() QQuickWindow(0xb40088)

We need to figure out if it is libhybris issue or Qt issue or kwin_wayland hwcomposer backend issue.

bshah created this task.Jun 13 2018, 5:19 AM
bshah triaged this task as Normal priority.
reivilibre added a comment.EditedJun 15 2018, 5:18 PM

Note: To get Qt full debug output, export this environment variable: QT_LOGGING_RULES="*.*=true".

Known affected devices:

Affected Device Chipset Graphics Remarks
bq Aquaris U (as in log above)MSM8937Adreno 505
HTC 10MSM8996Adreno 530
Xiaomi Mi 5s PlusMSM8996Adreno 530'Looks like the HTC 10 picture'

HTC 10 Photograph:

superl2 added a subscriber: superl2.EditedJul 23 2018, 7:07 AM

I have the same issue. Xiaomi Mi 5s Plus (natrium). My device looks like the HTC 10 picture.

alexeymin added a subscriber: alexeymin.EditedDec 2 2018, 4:32 PM

same, Xiaomi Redmi Note 4X (Snapdragon) [mido] , Adreno 506, MSM8953 Snapdragon 625
https://github.com/Halium/projectmanagement/issues/71#issuecomment-443450191

I have a similiar issue on my Samsung Galaxy Tab 3 7.0 running postmarketOS with Plasma Mobile on the software renderer.

I have the issue with my Moto G5 (cedric) on Halium, running edge Plasma Mobile rootfs.