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. 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