[RFC 0/9] gbm_surface

Ander Conselvan de Oliveira conselvan2 at gmail.com
Wed Dec 14 01:59:59 PST 2011

From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>


So, in London we discussed moving the drm compositor to a new
gbm_surface interface, which would allow the buffer management
to be handled by the egl implementation by calling eglSwapBuffers.

Here's a prototype implementation of such an interface in mesa and a
patch to wayland-demos moving compositor-drm to it. With the changes,
the compositor creates a gbm_surface for each output and from that it
creates egl surfaces.

The compositor is still responsible for the actual flipping. In order
to do that, the new interface includes a function for getting a bo for
a gbm_surface's front buffer. This change does not impact the ability
of scanning out a client buffer.


Ander Conselvan de Oliveira (9):
  gbm: add gbm_surface interface
  egl_dri2: make flush extension useable by drm platform
  gbm: implement basic gbm_surface on dri backend
  egl_dri2: use gbm_surface as the native window type in drm platform
  gbm: creates hooks for dri2_loader_extension in dri backend
  egl_dri2: implement get_buffers and swap_buffers in drm platform
  gbm: implement gbm_surface_get_bo in dri backend
  gbm: add a release_buffer callback to dri backend
  egl_dri2: add triple buffering support to drm platform

 src/egl/drivers/dri2/egl_dri2.h     |   18 ++
 src/egl/drivers/dri2/platform_drm.c |  340 ++++++++++++++++++++++++++++++++++-
 src/gbm/backends/dri/gbm_dri.c      |  147 +++++++++++++++-
 src/gbm/backends/dri/gbm_driint.h   |   31 +++-
 src/gbm/main/gbm.c                  |   26 +++
 src/gbm/main/gbm.h                  |   15 ++
 src/gbm/main/gbmint.h               |   14 ++
 7 files changed, 588 insertions(+), 3 deletions(-)


More information about the wayland-devel mailing list