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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev