Hi Stefan, On Thu, Mar 22, 2018 at 8:42 AM, Stefan Schake <stsch...@gmail.com> wrote: > Hey Robert, > > On Wed, Mar 21, 2018 at 4:16 PM, Robert Foss <robert.f...@collabora.com> > wrote: >> Hey, >> >> I've started looking into removing the gralloc method >> GRALLOC_MODULE_PERFORM_GET_DRM_FD. >> >> The issues around this seems to be two parts: >> 1) Finding the right device to open >> 2) Sharing the device between components >> >> Sharing the device between components >> ------------------------------------- >> >> Currently the device is used by drm_hwc, gbm_gralloc and mesa. >> >> drm_hwc opens the *primary* node in DrmResources::Init() and creates an >> internal model of what properties/components the device has. >> >> gbm_gralloc uses the *render* node during in gbm_dev_create(). >> >> Mesa uses uses the *render* node during dri_screen creation in >> dri2_create_screen() and for loading the driver in >> dri2_initialize_android(). >> >> However, problematically, drm_hwc uses OpenGL composition as a fallback >> method, and when doing so mesa has to be able to import buffers, which means >> mesa has to use a *primary* node. >> >> The way this is currently worked around in production systems seems to be to >> disable drm master authentication. This is at least what ChromeOS & Intel >> are doing as far as I understand it. >> > > Thanks for kicking this off. > > I've done a few tests on 2) with VC4 and 8.1.0_r18. With drm_hwc the primary > or master on card0 and gbm_gralloc & Mesa each getting their own fd from > render128, I didn't need any of the DRM authentication hacks in the kernel > anymore. That's with full overlay composition, everything forced to hwui GL > composition or everything done through my hacked up ES2 version of glworker > in drm_hwc (well it made it to launcher until succumbing to a resource leak). > So I don't think mesa would need a master node and could make do with render.
Thanks for checking this. It seems to match my assumptions, which I described in my reply to Rob's email. > > The one thing that mesa on a render node definitely breaks is flink/GEM names > which drm_gralloc uses (the Android-x86 version anyway). No flink anything > with render nodes; drm_gralloc would have to move to dmabuf fds. I really wonder why those are still in use... > > That said, it would finally get rid of the strict coupling between Mesa and > gralloc. Ripping out the PERFORM and drm_gralloc facsimile in gbm_gralloc > saves a big bunch of code: > > https://github.com/stschake/gbm_gralloc/tree/libdrm_handle_def > > With more in mesa/platform_android from the flink stuff. Nice diffstat. ;) Best regards, Tomasz _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev