Skip to content
  • Pekka Paalanen's avatar
    rpi: add a Dispmanx renderer · d7265bc4
    Pekka Paalanen authored
    Dispmanx is the prorietary display API on the Raspberry Pi, which
    provides hardware compositing. Every visible surface is assigned a
    Dispmanx element, and the hardware or firmware will do all compositing
    onto screen. The API supports translation, scaling, flips, discrete
    rotations in 90-degree steps, alpha channel on the surfaces, and
    full-surface alpha on top.
    
    Previously, Dispmanx capabilities were used via the weston_plane
    mechanism, where surfaces were assigned to planes when possible, and
    otherwise transparently falling back to GLESv2 compositing. Because we
    have no way to use the same memory buffer as a GL texture and a Dispmanx
    resource, we had to prepare for both. In the worst case, that means one GL
    texture, and two (double-buffered case) Dispmanx resources, all the size
    of a whole surface, for all surfaces. This was eating memory fast. To
    make things worse (and less slow), the wl_shm buffer was kept around,
    since it was copied to either a texture or a resource as nee...
    d7265bc4