|
Peter Hutterer |
77cc640 |
From 2e79f2eb5a0fbef5f0698b066938d8f1ada44698 Mon Sep 17 00:00:00 2001
|
|
|
55028b0 |
From: Fedora X Ninjas <x@fedoraproject.org>
|
|
|
f21d354 |
Date: Tue, 16 Feb 2010 11:38:17 +1000
|
|
Peter Hutterer |
77cc640 |
Subject: [PATCH] autoconfig: select nouveau by default for NVIDIA GPUs
|
|
|
55028b0 |
|
|
|
55028b0 |
Also, don't treat DRI setup failure as an error for nouveau.
|
|
|
55028b0 |
---
|
|
|
c22de5d |
glx/glxdri.c | 7 +++++--
|
|
|
c22de5d |
glx/glxdri2.c | 7 +++++--
|
|
|
c22de5d |
hw/xfree86/common/xf86pciBus.c | 18 +++++++++++++++++-
|
|
|
f21d354 |
3 files changed, 27 insertions(+), 5 deletions(-)
|
|
|
55028b0 |
|
|
|
55028b0 |
diff --git a/glx/glxdri.c b/glx/glxdri.c
|
|
Peter Hutterer |
77cc640 |
index db3fcd5..82cdb87 100644
|
|
|
55028b0 |
--- a/glx/glxdri.c
|
|
|
55028b0 |
+++ b/glx/glxdri.c
|
|
Peter Hutterer |
77cc640 |
@@ -979,6 +979,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|
|
55028b0 |
const __DRIconfig **driConfigs;
|
|
|
55028b0 |
const __DRIextension **extensions;
|
|
|
55028b0 |
int i;
|
|
|
55028b0 |
+ int from = X_ERROR;
|
|
|
55028b0 |
|
|
|
55028b0 |
if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") ||
|
|
|
55028b0 |
!DRIQueryDirectRenderingCapable(pScreen, &isCapable) ||
|
|
Peter Hutterer |
77cc640 |
@@ -1058,7 +1059,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|
|
55028b0 |
|
|
|
55028b0 |
screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
|
|
|
55028b0 |
if (screen->driver == NULL) {
|
|
|
55028b0 |
- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n",
|
|
|
55028b0 |
+ if (!strcmp(driverName, "nouveau"))
|
|
|
55028b0 |
+ from = X_INFO;
|
|
|
55028b0 |
+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n",
|
|
|
55028b0 |
filename, dlerror());
|
|
|
55028b0 |
goto handle_error;
|
|
|
55028b0 |
}
|
|
Peter Hutterer |
77cc640 |
@@ -1194,7 +1197,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|
|
55028b0 |
|
|
|
c22de5d |
free(screen);
|
|
|
55028b0 |
|
|
|
55028b0 |
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
|
|
|
55028b0 |
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
|
|
|
55028b0 |
|
|
|
55028b0 |
return NULL;
|
|
|
55028b0 |
}
|
|
|
55028b0 |
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
|
|
Peter Hutterer |
77cc640 |
index 0b69201..1c58023 100644
|
|
|
55028b0 |
--- a/glx/glxdri2.c
|
|
|
55028b0 |
+++ b/glx/glxdri2.c
|
|
Peter Hutterer |
77cc640 |
@@ -709,6 +709,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|
|
55028b0 |
const __DRIextension **extensions;
|
|
|
55028b0 |
const __DRIconfig **driConfigs;
|
|
|
55028b0 |
int i;
|
|
|
55028b0 |
+ int from = X_ERROR;
|
|
|
55028b0 |
|
|
|
c22de5d |
screen = calloc(1, sizeof *screen);
|
|
|
55028b0 |
if (screen == NULL)
|
|
Peter Hutterer |
77cc640 |
@@ -735,7 +736,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|
|
55028b0 |
|
|
|
55028b0 |
screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
|
|
|
55028b0 |
if (screen->driver == NULL) {
|
|
|
55028b0 |
- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n",
|
|
|
55028b0 |
+ if (!strcmp(driverName, "nouveau"))
|
|
|
55028b0 |
+ from = X_INFO;
|
|
|
55028b0 |
+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n",
|
|
|
55028b0 |
filename, dlerror());
|
|
|
55028b0 |
goto handle_error;
|
|
|
55028b0 |
}
|
|
Peter Hutterer |
77cc640 |
@@ -827,7 +830,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|
|
55028b0 |
|
|
|
c22de5d |
free(screen);
|
|
|
55028b0 |
|
|
|
55028b0 |
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
|
|
|
55028b0 |
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
|
|
|
55028b0 |
|
|
|
55028b0 |
return NULL;
|
|
|
55028b0 |
}
|
|
|
c22de5d |
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
|
|
Peter Hutterer |
77cc640 |
index 3e9c455..e34e6d6 100644
|
|
|
c22de5d |
--- a/hw/xfree86/common/xf86pciBus.c
|
|
|
c22de5d |
+++ b/hw/xfree86/common/xf86pciBus.c
|
|
Peter Hutterer |
77cc640 |
@@ -1123,7 +1123,23 @@ videoPtrToDriverList(struct pci_device *dev,
|
|
|
55028b0 |
break;
|
|
|
55028b0 |
case 0x102b: driverList[0] = "mga"; break;
|
|
|
55028b0 |
case 0x10c8: driverList[0] = "neomagic"; break;
|
|
|
55028b0 |
- case 0x10de: case 0x12d2: driverList[0] = "nv"; break;
|
|
|
55028b0 |
+ case 0x10de: case 0x12d2:
|
|
|
55028b0 |
+ switch (dev->device_id) {
|
|
|
55028b0 |
+ /* NV1 */
|
|
|
55028b0 |
+ case 0x0008:
|
|
|
55028b0 |
+ case 0x0009:
|
|
|
55028b0 |
+ driverList[0] = "vesa";
|
|
|
55028b0 |
+ break;
|
|
|
55028b0 |
+ /* NV3 */
|
|
|
55028b0 |
+ case 0x0018:
|
|
|
55028b0 |
+ case 0x0019:
|
|
|
55028b0 |
+ driverList[0] = "nv";
|
|
|
55028b0 |
+ break;
|
|
|
55028b0 |
+ default:
|
|
|
ff26d98 |
+ driverList[0] = "nouveau";
|
|
|
55028b0 |
+ break;
|
|
|
55028b0 |
+ }
|
|
|
55028b0 |
+ break;
|
|
|
55028b0 |
case 0x1106: driverList[0] = "openchrome"; break;
|
|
|
f21d354 |
case 0x1b36: driverList[0] = "qxl"; break;
|
|
|
55028b0 |
case 0x1163: driverList[0] = "rendition"; break;
|
|
|
55028b0 |
--
|
|
Peter Hutterer |
77cc640 |
1.7.3.2
|
|
|
55028b0 |
|