On Fri, Jun 24, 2011 at 3:34 PM, Benjamin Franzke <benjaminfran...@googlemail.com> wrote: > 2011/6/24 Chia-I Wu <olva...@gmail.com>: >> On Fri, Jun 24, 2011 at 8:38 AM, Chia-I Wu <olva...@gmail.com> wrote: >>> On Thu, Jun 23, 2011 at 8:07 PM, Benjamin Franzke >>> <benjaminfran...@googlemail.com> wrote: >>>> 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. >>> I meant external to egl_gallium. I plan to switch over to >>> targets/egl-static for egl_gallium soon, and there will be no >>> pipe_*.so anymore. >> Does this patch work for you? I don't know an easy way to test gbm. >> > > The pipe targets need start/end-group for the libs. > Updated patch attached. Cool, thanks. >> I'd like to commit it and then remove targets/egl (in favor of >> targets/egl-static) before 7.11 branched. > Oh, since the driver name lookup changed in targets/egl we have to port > that to egl-static target then. > See commit a433755ec5c48088a0d8a340851a1a8be9e58897. Yes, I've done that in my local branch. >> >>> Another thing I just noticed is that gbm(_dri) is enabled by default >>> and depends on --enable-shared-glapi, which is disabled by default. >>> They should have the same default. Since shared glapi solves many >>> linking issues, I'd like to see it enabled by default. But the thing >>> is that it changes libGL and the change hasn't really been discussed >>> or reviewed. It should deserve its own thread on the list. > > Right, I would prefer shared glapi by default as well. > If we dont get that, we could just remove drm from the default egl platforms, > and so gbm would be disabled by default. I would settle on removing drm from the default egl platforms, considering that 7.11 is close. >>> >>> >>>>>>>> >>>>>>>> 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 >>>>> >>>> >>> >>> >>> >>> -- >>> o...@lunarg.com >>> >> >> >> >> -- >> o...@lunarg.com >> >
-- o...@lunarg.com _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev