[Mesa-dev] [PATCH] egl: Don't add hardware device if there is no render node v2.

Ilia Mirkin imirkin at alum.mit.edu
Mon Jun 17 18:16:32 UTC 2019


On Mon, Jun 17, 2019 at 6:37 AM <Mathias.Froehlich at gmx.net> wrote:
>
> From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>
>
>
> Emil,
>
> that one probably matches your original intent then.
>
> please review
> Thanks
>
> Mathias
>
>
> Do not offer a hardware drm backed egl device if no render node
> is available. The current implementation will fail on this
> egl device. On top it issues a warning that is actually missleading.
> There are finally more error paths that can fail on the way to a
> hardware backed egl device. Fixing all of them would kind of require
> opening the drm device and see if there is a usable driver associated
> with the device. The taken approach avoids a full probe and fixes at
> least this kind of problem on kvm virtualization hosts I observe here.
>
> Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at web.de>
> ---
>  src/egl/main/egldevice.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/egl/main/egldevice.c b/src/egl/main/egldevice.c
> index 76b8960fa5b..99d8a6c1886 100644
> --- a/src/egl/main/egldevice.c
> +++ b/src/egl/main/egldevice.c
> @@ -108,9 +108,9 @@ static int
>  _eglAddDRMDevice(drmDevicePtr device, _EGLDevice **out_dev)
>  {
>     _EGLDevice *dev;
> +   const int wanted_nodes = 1 << DRM_NODE_RENDER | 1 << DRM_NODE_PRIMARY;

Why check for primary? Why require both at this point? I guess the
original intent was to require render *or* primary... but some devices
will not have a primary node if they don't have any outputs...

>
> -   if ((device->available_nodes & (1 << DRM_NODE_PRIMARY |
> -                                   1 << DRM_NODE_RENDER)) == 0)
> +   if ((device->available_nodes & wanted_nodes) != wanted_nodes)
>        return -1;
>
>     dev = _eglGlobal.DeviceList;
> --
> 2.21.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list