On Wed, Jun 22, 2011 at 10:30 PM, Benjamin Franzke <benjaminfran...@googlemail.com> wrote: > Hi List, > > This series adds a graphics buffer management library which is > targeted to be used as native (drm) platform for egl on kms or openwfd, > and thus replaces the current mechanism of using a fd as EGLNativeDisplay > and EGL_MESA_drm_image to create buffers. > GBM uses the mesas internal dri interface or acts as a gallium state tracker. > > The mapping to EGL types is: > > gbm_device - EGLNativeDisplayType > gbm_bo - EGLNativePixmapType / EGL_NATIVE_PIXMAP_KHR > > This integrates better with the idea of EGL, which assumes there is > some kind of native library thats responsible for allocating buffers. > > We wanted to use libkms, but since that's explicitly designed to no > support hw renderable buffers we have to go a different route. The idea looks good to me in general. But would it make sense to replace st/gbm and targets/gdm by another backend that uses st/xa, which is supposed to have a stable ABI, instead (currently only on xa_branch)? > > Benjamin Franzke (8): > dri: Add dupImage to DRIimageExtension > intel: Implement DRIimageExtension::dupImage > st/dri: Implement DRIimageExtension::dupImage > Add gbm (generic/graphics buffer manager) > gbm: Add dri backend > gbm: Add gallium (drm) backend > egl_dri2: Hookup gbm as drm platform > st/egl: Hookup gbm for drm backend > > Makefile | 11 + > configs/autoconf.in | 10 +- > configs/default | 14 +- > configure.ac | 70 ++++ > include/EGL/eglplatform.h | 6 + > include/GL/internal/dri_interface.h | 2 + > src/egl/drivers/dri2/Makefile | 2 + > src/egl/drivers/dri2/egl_dri2.c | 76 +++-- > src/egl/drivers/dri2/egl_dri2.h | 11 + > src/egl/drivers/dri2/platform_drm.c | 99 ++++-- > src/egl/main/Makefile | 4 + > src/gallium/state_trackers/dri/drm/dri2.c | 19 + > src/gallium/state_trackers/egl/Makefile | 3 +- > src/gallium/state_trackers/egl/common/egl_g3d.c | 18 +- > src/gallium/state_trackers/egl/common/native.h | 3 + > src/gallium/state_trackers/egl/drm/modeset.c | 36 ++ > src/gallium/state_trackers/egl/drm/native_drm.c | 77 ++--- > src/gallium/state_trackers/egl/drm/native_drm.h | 4 + > src/gallium/state_trackers/gbm/Makefile | 46 +++ > src/gallium/state_trackers/gbm/gbm_drm.c | 225 ++++++++++++ > .../state_trackers/gbm/gbm_gallium_drmint.h | 74 ++++ > src/gallium/targets/egl/Makefile | 2 +- > src/gallium/targets/gbm/Makefile | 32 ++ > src/gallium/targets/gbm/gbm.c | 61 ++++ > src/gallium/targets/gbm/pipe_loader.c | 192 ++++++++++ > src/gallium/targets/gbm/pipe_loader.h | 48 +++ > src/gbm/Makefile | 14 + > src/gbm/backends/Makefile | 14 + > src/gbm/backends/Makefile.template | 65 ++++ > src/gbm/backends/dri/Makefile | 22 ++ > src/gbm/backends/dri/driver_name.c | 89 +++++ > src/gbm/backends/dri/gbm_dri.c | 377 > ++++++++++++++++++++ > src/gbm/backends/dri/gbm_driint.h | 78 ++++ > src/gbm/main/Makefile | 90 +++++ > src/gbm/main/backend.c | 128 +++++++ > src/gbm/main/backend.h | 36 ++ > src/gbm/main/common.c | 88 +++++ > src/gbm/main/common.h | 42 +++ > src/gbm/main/common_drm.h | 48 +++ > src/gbm/main/gbm.c | 189 ++++++++++ > src/gbm/main/gbm.h | 99 +++++ > src/gbm/main/gbm.pc.in | 12 + > src/gbm/main/gbmint.h | 81 +++++ > src/mesa/drivers/dri/intel/intel_screen.c | 27 ++- > 44 files changed, 2536 insertions(+), 108 deletions(-) > create mode 100644 src/gallium/state_trackers/gbm/Makefile > create mode 100644 src/gallium/state_trackers/gbm/gbm_drm.c > create mode 100644 src/gallium/state_trackers/gbm/gbm_gallium_drmint.h > create mode 100644 src/gallium/targets/gbm/Makefile > create mode 100644 src/gallium/targets/gbm/gbm.c > create mode 100644 src/gallium/targets/gbm/pipe_loader.c > create mode 100644 src/gallium/targets/gbm/pipe_loader.h > create mode 100644 src/gbm/Makefile > create mode 100644 src/gbm/backends/Makefile > create mode 100644 src/gbm/backends/Makefile.template > create mode 100644 src/gbm/backends/dri/Makefile > create mode 100644 src/gbm/backends/dri/driver_name.c > create mode 100644 src/gbm/backends/dri/gbm_dri.c > create mode 100644 src/gbm/backends/dri/gbm_driint.h > create mode 100644 src/gbm/main/Makefile > create mode 100644 src/gbm/main/backend.c > create mode 100644 src/gbm/main/backend.h > create mode 100644 src/gbm/main/common.c > create mode 100644 src/gbm/main/common.h > create mode 100644 src/gbm/main/common_drm.h > create mode 100644 src/gbm/main/gbm.c > create mode 100644 src/gbm/main/gbm.h > create mode 100644 src/gbm/main/gbm.pc.in > create mode 100644 src/gbm/main/gbmint.h > > -- > 1.7.3.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
-- o...@lunarg.com _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev