2011/6/23 Chia-I Wu <olva...@gmail.com>: > On Thu, Jun 23, 2011 at 7:46 PM, Benjamin Franzke > <benjaminfran...@googlemail.com> wrote: >> 2011/6/23 Chia-I Wu <olva...@gmail.com>: >>> 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)? >> >> For the reason of a stable ABI we dont need it, since all of gbm is inside >> mesa. >> Maybe it could be used at some point to ease driver loading/sharing or >> so, dont know, >> but right now I think its easier to just have this small state tracker. >> Since its inside mesa we could change it later if it feels better then. > Ok. From a quick look I thought there was gbm_gallium_drm.so which > loads egl_gallium's pipe drivers. As the pipe drivers should not > exist, I'd like to see no external use of them. Maybe I was wrong. > Well, thats done, but i think thats not a problem. I like to see a general drm-pipe in future, which is used only by gallium state-trackers that need to load drivers, like egl, gbm(, xa), so no external use.
>>>> >>>> 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 >>> >> > > > > -- > o...@lunarg.com > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev