Versions Compared

Key

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

...

This is a generic library (as of wayland v1.13) that is provided by wayland project and MUST SHOULD NOT be a platform/SoC specific library provided by (SoC) vendor layer .

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

Table of Contents

Purpose of libwayland-egl.so

...

More details on reasons and history of this split are described in "History and reasons for split" section. 

Here is the wayland source snippet that defines the package config wayland-egl.pc and wayland-egl-backend.pc

...

History and reasons for split

Historical Context

see also some of historical wayland discussion threads on this subject, like  

  • Originally, Wayland-EGL integration was a single library providing both:
    • Public API for applications (wl_egl_window_create(), etc.).
    • Internal hooks for EGL drivers to manage Wayland surfaces.
  • This caused tight coupling between the application-facing API and vendor-specific backend logic, making it hard to:
    • Maintain ABI stability.
    • Support multiple EGL implementations (Mesa, NVIDIA, proprietary stacks).
    • Evolve the backend without breaking apps.
  • Before this split:

    • Mesa shipped one wayland-egl, Nvidia shipped another
    • Mali/Imagination/Vivante SoC vendors shipped different incompatible versions
    • Compositors tried to support all variants and failed
    • ABI mismatches caused crashes that were impossible to debug
    • Wayland protocol adoption slowed due to EGL chaos

    After the split:

    • The public API (wl_egl_window_*) became stable
    • Vendor drivers no longer shipped their own conflicting frontend
    • Backend ABI became versioned and controlled
    • Compositors can explicitly declare which backend ABI they implement
    • EGL drivers and compositors can reject incompatible combinations early

...