[Mesa-dev] [PATCH 8/8] egldevice: implement eglQueryDisplayAttribEXT
Adam Jackson
ajax at redhat.com
Thu Jul 21 13:57:06 UTC 2016
On Fri, 2015-07-24 at 16:20 +0200, Jonny Lamb wrote:
> This adds a new vfunc to _EGLDriver, QueryDeviceName, which should
> return a const string of the device name (usually in the format
> '/dev/dri/cardN').
>
> The EGLDevice could perhaps be cached in the EGLDisplay but there
> usually aren't loads of devices and this lookup isn't particularly
> costly so leave it as is for now.
>
> Right now this only works with the egl_dri2 driver.
Ancient thread I know, but this doesn't work, at least in my wayland
session.
> static EGLBoolean
> +_eglQueryDeviceFromDisplay(_EGLDeviceInfo *info,
> + _EGLDriver *drv,
> + _EGLDisplay *disp,
> + EGLAttrib *value)
> +{
> +#ifdef HAVE_LIBUDEV
> + const char *device_name = NULL;
> + _EGLDevice *dev;
> + UDEV_SYMBOL(const char *, udev_device_get_property_value,
> + (struct udev_device *, const char *));
> +
> + if (dlsym_failed)
> + return EGL_FALSE;
> +
> + if (!drv->QueryDeviceName)
> + return EGL_FALSE;
> +
> + device_name = drv->QueryDeviceName(disp);
This is /dev/dri/renderD128...
> + mtx_lock(_eglGlobal.Mutex);
> +
> + assert(info->got_devices);
> +
> + for (dev = info->devices; dev; dev = dev->Next) {
> + const char *devname = udev_device_get_property_value(
> + dev->Info, "DEVNAME");
And this is /dev/dri/card0, so querying the display will always fail.
Obviously I can paper over this when there's only one device in the
list, but the whole reason I want this is to make multi-GPU work
better. Any ideas on a better approach here?
- ajax
More information about the mesa-dev
mailing list