Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

On some SoCs (Amlogic and realtekRealtek?) the libwayland-egl.so in RDKv6/7 is library provided by SoC vendor layer instead generic frontend lib provided by wayland and we need to fix/resolve that in RDK-8

...

Issue and clean up required in RDK-8

Issue on RDK  :

...

On some SoCs (Amlogic

...

and Realtek

...

It basically comes down to that  “?) the libwayland-egl.so” library is front-end library for use by applications without soc dependent link dependencies and we should hence we should build and add that lib to our base-layer and NOT bind mount that lib from host in our container. in RDKv6/7 is library provided by SoC vendor layer instead generic frontend lib provided by wayland and we need to fix/resolve that in RDK-8

RDK OSS


on Amlogic

This is current bitbake recipe used in current AH212 version as provider of virtual/libgles but also as RPROVIDES:${PN} += "libwayland-egl.so" , see 

https://code.rdkcentral.com/r/plugins/gitiles/collaboration/soc/amlogic/yocto_oe/layers/meta-amlogic/+/refs/heads/develop/recipes-graphics/libgles/libgles-eabihf-dvalin-wayland-drm_r44p0.bb

https://code.rdkcentral.com/r/plugins/gitiles/collaboration/soc/amlogic/yocto_oe/layers/meta-amlogic/+/refs/tags/3.7.1/recipes-graphics/libgles/libgles-eabihf-dvalin-wayland-drm_r44p0.bb

currently  SRCREV ?= "${SRCREV_AML_BSP}" refers to "AML_BSP_REL_VERSION_RDK6.1.6"

and hence the precompiled so binary that provides libwayland-egl.so is following

https://code.rdkcentral.com/r/plugins/gitiles/collaboration/soc/amlogic/linux/amlogic/meson_mali/+/refs/tags/AML_BSP_REL_VERSION_RDK6.1.6/lib/arm64/dvalin/r44p0/wayland/drm/libMali_dmaheap.so

Since library is only provided as binary and not as source (access requires ARM approval Mali DDK license) we and RDK-M cannot investigate and action is fully on amlogic

readelf -d libMali.so | grep NEEDED  is https://github.com/stagingrdkm/lgpub/blob/master/dac/templates/oe_4.0/ah212_libs.json#L4899-L4912

Code Block
languagec
titledepstree
collapsetrue
            "deps": [
                "/lib/ld-linux-armhf.so.3",
                "/lib/libc.so.6",
                "/lib/libdl.so.2",
                "/lib/libgcc_s.so.1",
                "/lib/libm.so.6",
                "/lib/libpthread.so.0",
                "/lib/librt.so.1",
                "/usr/lib/libdrm.so.2",
                "/usr/lib/libstdc++.so.6",
                "/usr/lib/libwayland-client.so.0",
                "/usr/lib/libwayland-server.so.0"
            ],
            "name": "/usr/lib/libMali.so"


of that libe is 



meta-bolt-distroAnd we need to mandate that drivers in vendor layer use and support the wayland-egl-backend interface version 3 and possibly review/clean up way they build that library now on host.


History and reasons for split

...

  1. Frontend (libwayland-egl.so)
  2. Provides stable, public API for applications:
    • wl_egl_window_create()
    • wl_egl_window_resize()
    • wl_egl_window_destroy()
    • Provides stable, public API for applications:
    • Links against libwayland-client and libEGL.
    • Purpose: Applications only need this library to create EGL surfaces on Wayland.
  3. Backend Interface (wayland-egl-backend.h)
  4. Defines internal hooks and structures for EGL platform implementers:
    • struct wl_egl_window with driver_private and callbacks.
    • Functions for resize and destroy callbacks.
    • Defines internal hooks and structures for EGL platform implementers:
    • Allows EGL drivers to attach private data and implement buffer management (GBM for Mesa, EGLStream for NVIDIA).
    • Purpose: Vendors can implement their own backend logic without exposing internals to apps.

...