On Fri, Apr 22, 2016 at 1:21 PM, Eric Anholt <e...@anholt.net> wrote: > Rob Herring <r...@kernel.org> writes: > >> This adds map and unmap functions to GBM utilizing the DRIimage extension >> mapImage/unmapImage functions or existing internal mapping for dumb >> buffers. Unlike prior attempts, this version provides a region to map and >> usage flags for the mapping. The operation follows the same semantics as >> the gallium transfer_map() function. >> >> This was tested with GBM based gralloc on Android. >> >> This still creates a context, but I've moved it into gbm_create_device >> rather than in the map function. This should remove any need for reference >> counting and problems with memory leaks. >> >> Signed-off-by: Rob Herring <r...@kernel.org> > > > >> @@ -981,6 +1033,8 @@ dri_device_create(int fd) >> dri->base.base.fd = fd; >> dri->base.base.bo_create = gbm_dri_bo_create; >> dri->base.base.bo_import = gbm_dri_bo_import; >> + dri->base.base.bo_map = gbm_dri_bo_map; >> + dri->base.base.bo_unmap = gbm_dri_bo_unmap; >> dri->base.base.is_format_supported = gbm_dri_is_format_supported; >> dri->base.base.bo_write = gbm_dri_bo_write; >> dri->base.base.bo_get_fd = gbm_dri_bo_get_fd; >> @@ -1004,6 +1058,10 @@ dri_device_create(int fd) >> if (ret) >> goto err_dri; >> >> + if (dri->image->base.version >= 12) >> + dri->context = dri->dri2->createNewContext(dri->screen, NULL, >> + NULL, NULL); >> + >> return &dri->base.base; > > I don't think we want to always make a spare context just in case > someone uses the map API. Contexts can be pretty expensive to set up, > in time (for piglit tests on gbm) and memory (for X.Org).
There was some discussion about this context in the last version. I put it here for now for simplicity given what to do here is not clear. It's not clear to me exactly what the concurrency guarantees there are with GBM. I was assuming gbm_device_create doesn't need to be thread safe, but creating and mapping BOs does. Rob _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev