[Mesa-dev] [PATCH RFC 0/2] GBM API extension to support fusing KMS and render devices

Daniel Stone daniel at fooishbar.org
Fri Mar 4 15:09:38 UTC 2016


Hi Lucas,

On 4 March 2016 at 13:49, Lucas Stach <l.stach at pengutronix.de> wrote:
> this is a first shot at trying to hash out an API to allow bootstrapping
> an EGL context on top of split render/scanout DRM devices. It tries to make
> things really easy for applications, while leaving them in full control over
> swap/flip scheduling etc.
>
> It adds 2 new API calls:
>
> 1. gbm_device_set_kms_provider()
>    This is used to add a KMS device to the render GBM device.
> 2. gbm_bo_get_kms_bo()
>    This should be used by applications to translate the buffer returned
>    by gbm_surface_lock_front_buffer() into a buffer that can be used to
>    construct DRM FBs.

Thanks for taking this on, it looks really good! I just have the one
question though - did you look at the EGLDevice extension? Using that
to enumerate the GPUs, we could create the gbm_device using the KMS
device and pass that in to the EGLDisplay, with an additional attrib
to pass in an EGLDevice handle to eglGetPlatformDisplay. This could
possibly be better since it is more independent of DRM as the API, and
also allows people to share device enumeration/selection code with
other platforms (e.g. choosing between multiple GPUs when using a
winsys like Wayland or X11).

Cheers,
Daniel


More information about the mesa-dev mailing list