Comments (3)
[14 June 2020]
Tried a 5.1.1 base this will cause another error: QSGRenderThread: unhandled page fault (11)
. This also breaks sensors...
Another thing that was tried is the so called lipstick-hack
:
https://github.com/mer-hybris/droid-config-falcon/blob/master/sparse/usr/bin/droid/lipstick-hack.sh
This one doesn't actually run with the default LD_PRELOAD. So another command is used to load SurfaceFlinger
:
LD_PRELOAD=/system/lib/libsurfaceflinger.so LD_LIBRARY_PATH=/usr/libexec/hal-droid/system/lib/ /system/bin/surfaceflinger
Here is the logcat
of the surfaceflinger.
06-14 17:02:47.145 700 700 I SurfaceFlinger: SurfaceFlinger is starting
06-14 17:02:47.146 700 700 I SurfaceFlinger: SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
06-14 17:02:47.150 700 700 D libEGL : loaded /vendor/lib/egl/libEGL_adreno.so
06-14 17:02:47.151 700 700 D libEGL : loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
06-14 17:02:47.176 700 700 D libEGL : loaded /vendor/lib/egl/libGLESv2_adreno.so
06-14 17:02:47.200 700 700 I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 09/28/15, cb423fe, Ib3272dc427
06-14 17:02:47.621 700 700 I qdutils : PartialUpdate status: Disabled
06-14 17:02:47.621 700 700 I qdutils : Left Align: 0
06-14 17:02:47.621 700 700 I qdutils : Width Align: 0
06-14 17:02:47.621 700 700 I qdutils : Top Align: 0
06-14 17:02:47.621 700 700 I qdutils : Height Align: 0
06-14 17:02:47.621 700 700 I qdutils : Min ROI Width: 0
06-14 17:02:47.621 700 700 I qdutils : Min ROI Height: 0
06-14 17:02:47.621 700 700 I qdutils : Needs ROI Merge: 0
06-14 17:02:47.622 700 700 D qdhwcomposer: int qhwc::adRead(): /sys/class/graphics/fb-1/ad could not be opened : No such file or directory
06-14 17:02:47.623 700 700 I qdhwcomposer: Initializing Qualcomm Hardware Composer
06-14 17:02:47.623 700 700 I qdhwcomposer: MDP version: 500
06-14 17:02:47.623 700 700 I SurfaceFlinger: Using composer version 1.4
06-14 17:02:47.623 700 700 I qdhwcomposer: hwc_registerProcs
06-14 17:02:47.623 700 700 I qdhwcomposer: Initializing UEVENT Thread
06-14 17:02:47.624 700 700 I qdhwcomposer: Initializing VSYNC Thread
06-14 17:02:47.624 700 700 D qdhwcomposer: hwc_getDisplayAttributes disp = 0, width = 360
06-14 17:02:47.624 700 700 D qdhwcomposer: hwc_getDisplayAttributes disp = 0, height = 330
06-14 17:02:47.629 700 700 I SurfaceFlinger: EGL information:
06-14 17:02:47.629 700 700 I SurfaceFlinger: vendor : Android
06-14 17:02:47.629 700 700 I SurfaceFlinger: version : 1.4 Android META-EGL
06-14 17:02:47.629 700 700 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image EGL_KHR_image_base EGL_KHR_lock_surface EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_KHR_create_context EGL_EXT_create_context_robustness EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable EGL_KHR_partial_update
06-14 17:02:47.629 700 700 I SurfaceFlinger: Client API: OpenGL_ES
06-14 17:02:47.629 700 700 I SurfaceFlinger: EGLSurface: 8-8-8-8, config=0x5
06-14 17:02:47.630 700 700 I SurfaceFlinger: OpenGL ES informations:
06-14 17:02:47.630 700 700 I SurfaceFlinger: vendor : Qualcomm
06-14 17:02:47.630 700 700 I SurfaceFlinger: renderer : Adreno (TM) 305
06-14 17:02:47.630 700 700 I SurfaceFlinger: version : OpenGL ES 3.0 [email protected] AU@ (GIT@Ib3272dc427)
06-14 17:02:47.630 700 700 I SurfaceFlinger: extensions: GL_AMD_compressed_ATC_texture GL_AMD_performance_monitor GL_AMD_program_binary_Z400 GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_robustness GL_EXT_texture_format_BGRA8888 GL_EXT_texture_type_2_10_10_10_REV GL_NV_fence GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_depth24 GL_OES_EGL_image GL_OES_EGL_sync GL_OES_EGL_image_external GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_fragment_precision_high GL_OES_get_program_binary GL_OES_packed_depth_stencil GL_OES_depth_texture_cube_map GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_vertex_type_10_10_10_2 GL_OES_vertex_array_object GL_QCOM_alpha_test GL_QCOM_binning_control GL_QCOM_driver_control GL_QCOM_perfmon_global_mode GL_QCOM_extended_get GL_QCOM_extended_get2 GL_QCOM_tiled_rendering GL_QCOM_writeonly_rendering GL_EXT_sRGB GL_EXT_sRGB_write_con
06-14 17:02:47.630 700 700 I SurfaceFlinger: GL_MAX_TEXTURE_SIZE = 4096
06-14 17:02:47.630 700 700 I SurfaceFlinger: GL_MAX_VIEWPORT_DIMS = 4096
06-14 17:02:47.632 700 709 I qdhwcomposer: vsync_loop: Reading event 0 for dpy 0 from /sys/class/graphics/fb0/vsync_event
06-14 17:02:47.632 700 709 I qdhwcomposer: vsync_loop: Reading event 1 for dpy 0 from /sys/class/graphics/fb0/show_blank_event
06-14 17:02:47.632 700 709 I qdhwcomposer: vsync_loop: Reading event 0 for dpy 1 from /sys/class/graphics/fb-1/vsync_event
06-14 17:02:47.632 700 709 I qdhwcomposer: vsync_loop: Reading event 1 for dpy 1 from /sys/class/graphics/fb-1/show_blank_event
06-14 17:02:47.643 700 700 I SurfaceFlinger: EGL information:
06-14 17:02:47.643 700 700 I SurfaceFlinger: vendor : Android
06-14 17:02:47.643 700 700 I SurfaceFlinger: version : 1.4 Android META-EGL
06-14 17:02:47.643 700 700 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_KHR_image EGL_KHR_image_base EGL_KHR_lock_surface EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_KHR_create_context EGL_EXT_create_context_robustness EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable EGL_KHR_partial_update
06-14 17:02:47.643 700 700 I SurfaceFlinger: Client API: OpenGL_ES
06-14 17:02:47.643 700 700 I SurfaceFlinger: EGLSurface: 8-8-8-8, config=0x5
06-14 17:02:47.648 700 700 D SurfaceFlinger: Set power mode=2, type=0 flinger=0xb6a69000
06-14 17:02:47.648 700 709 I qdhwcomposer: handle_blank_event: dpy:0 panel power state: 1
06-14 17:02:47.996 700 700 D SurfaceFlinger: shader cache generated - 24 shaders in 290.419434 ms
06-14 17:02:48.010 700 700 D qdutils : DEBUG_CALC_FPS: 0
06-14 17:02:48.010 700 700 D qdutils : period: 10
06-14 17:02:48.010 700 700 D qdutils : ignorethresh_us: 500000
This does not solve the recurring logcat
error:
06-14 17:00:57.064 669 679 E qdoverlay: Bad ov dump: mdp_overlay z=0 fg=0 alpha=255 mask=-1 flags=0x20000 id=-1
06-14 17:00:57.064 669 679 E qdoverlay: src msmfb_img w=384 h=330 format=13 MDP_RGBA_8888
06-14 17:00:57.064 669 679 E qdoverlay: src_rect mdp_rect x=0 y=0 w=360 h=330
06-14 17:00:57.064 669 679 E qdoverlay: dst_rect mdp_rect x=0 y=0 w=360 h=330
And dmesg
error:
[ 25.480276] mdss_mdp_pipe_init: no 2 type pipes available
[ 25.480293] mdss_mdp_overlay_pipe_setup: error allocating pipe. flags=0x20000
Next things to try is to continue to use the 6.0.1 base and:
- Grab the full log of hybris. (HYBRIS_TRACE=1 and HYBRIS_LOGGING_LEVEL=debug)
- Enable debug logs of mdss kernel module.
from meta-smartwatch.
[18 June 2020]
Still no solution to the problem...
I did the proposed things in the previous post.
The output of the full log can be found in this gist: https://gist.github.com/MagneFire/d2de089ebea16094131aab09bdba25fc
Here are some other things that were tried:
- Use lollipop kernel.
- Upgrade qt5-qpa-hwcomposer-plugin to the latest version.
- Disable
QCOM_BSP
flag libraries.
The mooneye port does permanently not need the QCOM_BSP
flag. So I tried the same here. To no avail.
Interestingly sturgeon also outputs a similar error to:
06-14 17:00:57.064 669 679 E qdoverlay: Bad ov dump: mdp_overlay z=0 fg=0 alpha=255 mask=-1 flags=0x20000 id=-1
06-14 17:00:57.064 669 679 E qdoverlay: src msmfb_img w=384 h=330 format=13 MDP_RGBA_8888
06-14 17:00:57.064 669 679 E qdoverlay: src_rect mdp_rect x=0 y=0 w=360 h=330
06-14 17:00:57.064 669 679 E qdoverlay: dst_rect mdp_rect x=0 y=0 w=360 h=330
Lost the log of that but it was something similar to:
06-14 17:00:57.064 669 679 E qdoverlay: Bad ov dump: mdp_overlay z=0 fg=0 alpha=255 mask=-1 flags=0x20000 id=-1
06-14 17:00:57.064 669 679 E qdoverlay: src msmfb_img w=416 h=400 format=13 MDP_RGBA_8888
06-14 17:00:57.064 669 679 E qdoverlay: src_rect mdp_rect x=0 y=0 w=400 h=400
06-14 17:00:57.064 669 679 E qdoverlay: dst_rect mdp_rect x=0 y=0 w=400 h=400
Notice the w=416. This is also exceeds the resolution of the display. The same is true for smelt. This just makes it more plausible that the logcat output can be ignored to some extend. The main difference is that sturgeon only prints it once, smelt fills the logcat with this message.
I do believe that test_hwcomposer
should now work, because the QCOM_BSP
flag was missing in android-headers.h
in the system tarbal.
The next thing is to continue debugging the kernel. I didn't find anything useful in the libhybris log other than the huge amount of missing symbols. Which may be normal 😉
I hope that solving the mdss_mdp_overlay_pipe_setup: error allocating pipe. flags=0x20000
will make the compositor work.
Here are some sources:
mdss_mdp_overlay_pipe_setup: error allocating pipe:
- http://www.merproject.org/logs/%23sailfishos-porters/%23sailfishos-porters.2016-03-25.log.html
- http://www.merproject.org/logs/%23sailfishos-porters/%23sailfishos-porters.2017-04-14.log.html
- http://www.merproject.org/logs/%23sailfishos-porters/%23sailfishos-porters.2017-10-08.log.html
qdoverlay: Bad ov dump
- http://www.merproject.org/logs/%23sailfishos-porters/%23sailfishos-porters.2016-05-24.log.html
- http://www.merproject.org/logs/%23sailfishos-porters/%23sailfishos-porters.2017-07-10.log.html
- http://www.merproject.org/logs/%23sailfishos-porters/%23sailfishos-porters.2017-07-11.log.html
kernel
kernel patches
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-ali
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-cedric
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-channel
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-def
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-falcon
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-ghost
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-payton
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-peregrine
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-perry
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-potter
- https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/linux-motorola-titan
pmOS troubleshooting
https://wiki.postmarketos.org/wiki/Troubleshooting:display
hadk troubleshooting
https://wiki.merproject.org/wiki/Adaptations/faq-hadk#lipstick_segfaults.2Fno_display
similar error no solution
https://github.com/postmarketOS/osk-sdl/issues/81
libhybris gpu adaptations
https://wiki.merproject.org/wiki/Adaptations/libhybris/gpu
How to build system tar
- https://github.com/AsteroidOS/meta-sturgeon-hybris/blob/master/README-system-dir.md
- https://github.com/MagneFire/meta-smelt-hybris/blob/master/README-system-dir.md
- https://github.com/AsteroidOS/meta-mooneye-hybris/blob/master/README-system-dir
from meta-smartwatch.
[19 June 2020]
Finally! Fixed!
While debugging the kernel it can be observed that the msm8226 platform only has 1 RGB pipe. This information can be obtained by looking here:
cd /sys/devices/fd900000.qcom,mdss_mdp/
cat caps
This yields the following output:
mdp_version=5
hw_rev=268500993
rgb_pipes=1
vig_pipes=1
dma_pipes=1
blending_stages=6
cursor_pipes=0
smp_count=7
smp_size=4096
smp_mb_per_pipe=3
max_downscale_ratio=4
max_upscale_ratio=20
max_bandwidth_low=1100000
max_bandwidth_high=1660000
features= max_mixer_width
Notice the rgb_pipes=1
However when observing the dmesg output it can be seen that the rgb pipe is used by another process(i.e. not asteroid-launcher
or test_hwcomposer
). Turns out that msm-fb-refresher
is using this pipe!
Disabling the msm-fb-refresher
service makes the compositor work. This does introduce another bug though:
The boot logo is no longer displayed...
A simple hack to fix this is to not initialize the pipe the first time 😉
from meta-smartwatch.
Related Issues (20)
- [Feature Request] Show correct codename in images for multiple watches HOT 1
- Change button mappings
- [pike] ADB/SSH do not work HOT 1
- [lenok] Watch wakes up on palm detect sensor HOT 2
- [sparrow] BT HCI device not showing - nightly possibly missing firmware? HOT 3
- [skipjack] WiFi needs a patch to run HOT 1
- [beluga] screen flickering HOT 7
- [sturgeon] Major lag all over the UI in 20230730 build HOT 2
- [harmony] touch input on homescreen is inverted and apps upside-down HOT 1
- [harmony] Stuck on reboot and power off.
- Support 64bit platforms with 32bit userspace HOT 1
- [anthias] Sensors do not work
- [anthias] Apps crash HOT 1
- [hoki] wifi support HOT 2
- [beluga] Incorrect device codename designation on web HOT 4
- [beluga] Documentation: Discrepancy between Hardware Support page and other sources regarding NFC support.
- [dace] TicWatch Pro 5 support HOT 2
- [Beluga/OW19W8] Oppo Watch Found Bugs/issues/missing software features on clean/default install HOT 6
- Confused with de-installation on Beluga / OW19W8 / Oppo Watch
- [lenok] Nightlies stuck at boot since 2024-02-16 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from meta-smartwatch.