summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.hsd1.va.comcast.net>2007-01-30 21:11:09 -0500
committerAlex Deucher <alex@botch2.hsd1.va.comcast.net>2007-01-30 21:11:09 -0500
commitff8ea19fcdce099732f9359e53cd62b9a04bfa6d (patch)
tree0d79b670e5325920ab8f1c3c9d09b1ff50f8ae0b
parent2fb84dd2fc1a663c7b9d77e706189439ffe08381 (diff)
add option to force the DRI on for RN50 chips
Allow user to force the DRI on for RN50 chips. 3D is not guaranteed to work on these chips, however in some cases it does. fixes bug 9802.
-rw-r--r--man/radeon.man8
-rw-r--r--src/radeon.h3
-rw-r--r--src/radeon_driver.c14
3 files changed, 20 insertions, 5 deletions
diff --git a/man/radeon.man b/man/radeon.man
index eb775ed..db090d5 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -26,7 +26,7 @@ driver supports PCI and AGP video cards based on the following ATI chips
Radeon 7200
.TP 12
.B RV100
-Radeon 7000(VE), M6
+Radeon 7000(VE), M6, RN50/ES1000
.TP 12
.B RS100
Radeon IGP320(M)
@@ -625,6 +625,12 @@ case. This is only useful for LVDS panels (laptop internal panels).
The default is
.B on.
.TP
+.BI "Option \*qRN50Force3D\*q \*q" boolean \*q
+Enable DRI support for RN50/ES1000 chips. The 3D engine on these chips has
+not been validated at the hardware level and is not likely to work in most
+cases. If it does, you got lucky. The default is
+.B off.
+.TP
.SH SEE ALSO
__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
diff --git a/src/radeon.h b/src/radeon.h
index 1f44163..0f5dae0 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -156,7 +156,8 @@ typedef enum {
OPTION_LVDS_PROBE_PLL,
OPTION_ACCELMETHOD,
OPTION_CONSTANTDPI,
- OPTION_REVERSE_DISPLAY
+ OPTION_REVERSE_DISPLAY,
+ OPTION_RN50_3D
} RADEONOpts;
/* ------- mergedfb support ------------- */
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index cd5a807..1d217ae 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -198,6 +198,7 @@ static const OptionInfoRec RADEONOptions[] = {
{ OPTION_ACCELMETHOD, "AccelMethod", OPTV_STRING, {0}, FALSE },
{ OPTION_CONSTANTDPI, "ConstantDPI", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_REVERSE_DISPLAY,"ReverseDisplay", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_RN50_3D, "RN50Force3D", OPTV_BOOLEAN, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -2511,9 +2512,16 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
if (info->Chipset == PCI_CHIP_RN50_515E ||
info->Chipset == PCI_CHIP_RN50_5969) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Direct rendering not supported on RN50\n");
- return FALSE;
+ if (xf86ReturnOptValBool(info->Options, OPTION_RN50_3D, FALSE)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Direct rendering for RN50 forced on -- "
+ "This is NOT officially supported at the hardware level "
+ "and may cause instability or lockups\n");
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Direct rendering not officially supported on RN50\n");
+ return FALSE;
+ }
}
if (info->Chipset == PCI_CHIP_RS400_5A41 ||