Coder Social home page Coder Social logo

Comments (3)

MagneFire avatar MagneFire commented on May 30, 2024

[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.

MagneFire avatar MagneFire commented on May 30, 2024

[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:

qdoverlay: Bad ov dump

kernel

kernel patches

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

from meta-smartwatch.

MagneFire avatar MagneFire commented on May 30, 2024

[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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.