[Mesa-dev] [PATCH 0/8] GBM Graphics Buffer Manager
Chia-I Wu
olvaffe at gmail.com
Wed Jun 22 19:30:38 PDT 2011
On Wed, Jun 22, 2011 at 10:30 PM, Benjamin Franzke
<benjaminfranzke at 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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
--
olv at LunarG.com
More information about the mesa-dev
mailing list