From: Dave Airlie Date: Sun, 13 Feb 2011 21:52:26 +0000 (+1000) Subject: egl_dri2: add nouveau support. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f5b67416810f7331fe71db0f767418473083701;p=mesa.git egl_dri2: add nouveau support. but really wtf? all these PCI IDs need to be ripped out of here, its totally unscalable and the drivers already have this info so could export it some better way. tested by Darxus on #wayland. --- diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c index 42939a57a2a..a25cad6d0c5 100644 --- a/src/egl/drivers/dri2/platform_drm.c +++ b/src/egl/drivers/dri2/platform_drm.c @@ -565,6 +565,7 @@ const struct dri2_driver_map driver_map[] = { { 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) }, { 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) }, { 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids) }, + { 0x10de, "nouveau", NULL, -1 }, }; char * @@ -605,6 +606,13 @@ dri2_get_driver_for_fd(int fd) for (i = 0; i < ARRAY_SIZE(driver_map); i++) { if (vendor_id != driver_map[i].vendor_id) continue; + if (driver_map[i].num_chips_ids == -1) { + driver = strdup(driver_map[i].driver); + _eglLog(_EGL_DEBUG, "pci id for %d: %04x:%04x, driver %s", + fd, vendor_id, chip_id, driver); + goto out; + } + for (j = 0; j < driver_map[i].num_chips_ids; j++) if (driver_map[i].chip_ids[j] == chip_id) { driver = strdup(driver_map[i].driver);