Skip to content
  • Pekka Paalanen's avatar
    rpi: a backend for Raspberry Pi · e8de35c9
    Pekka Paalanen authored
    
    
    Add a new backend for the Raspberry Pi.
    
    This backend uses the DispmanX API to initialise the display, and create
    an EGLSurface, so that GLESv2 rendering is shown on the "framebuffer".
    No X server is involved. All compositing happens through GLESv2.
    
    The created EGLSurface is specifically configured as buffer content
    preserving, otherwise Weston wouuld show only the latest damage and
    everything else was black. This may be sub-optimal, since we are not
    alternating between two buffers, like the DRM backend is, and content
    preserving may imply a fullscreen copy on each frame.
    
    Page flips are not properly hooked up yet. The display update will
    block, and we use a timer to call weston_output_finish_frame(), just
    like the x11 backend does.
    
    This backend handles the VT and tty just like the DRM backend does.
    While VT switching works in theory, the display output seems to be
    frozen while switched away from Weston. You can still switch back.
    
    Seats and connectors cannot be explicitly specified, and multiple seats
    are not expected.
    
    Udev is used to find the input devices. Input devices are opened
    directly, weston-launch is not supported at this time. You may need to
    confirm that your pi user has access to input device nodes.
    
    The Raspberry Pi backend is built by default. It can be build-tested
    without the Raspberry Pi headers and libraries, because we provide stubs
    in rpi-bcm-stubs.h, but such resulting binary is non-functional. If
    using stubs, the backend is built but not installed.
    
    VT and tty handling, and udev related code are pretty much copied from
    the DRM backend, hence the copyrights. The rpi-bcm-stubs.h code is
    copied from the headers on Raspberry Pi, including their copyright
    notice, and modified.
    
    Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <ppaalanen@gmail.com>
    e8de35c9