Hi
With an old binary snapshot (over a month old) I got my Radeon 9000 Pro card working
with XFree86 including DRI support. This was achieved by setting the ChipId in the
XF86Config file to 0x4242.
I noticed that the latest drivers actually recognise the card (RV250_If), but that DRI
is disabled, so I created the attached patch against CVS from 20021026. This gets DRI
working on my system using the r200 DRI driver. It's not perfect, but it works.
Thought you might like to apply the patch so others can have DRI on the Radeon 9000
and 9700 cards.
Regards.
Scott Harrison.
diff -ru xc.orig/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
--- xc.orig/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c Wed Oct 23
06:05:13 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c Tue Oct 29 21:03:38
+2002
@@ -1002,6 +1002,8 @@
if (info->ChipFamily == CHIP_FAMILY_R200)
drmInfo.func = DRM_RADEON_INIT_R200_CP;
+ else if (info->ChipFamily == CHIP_FAMILY_RV250)
+ drmInfo.func = DRM_RADEON_INIT_R200_CP;
else
drmInfo.func = DRM_RADEON_INIT_CP;
@@ -1222,6 +1224,8 @@
if (info->ChipFamily == CHIP_FAMILY_R200)
pDRIInfo->clientDriverName = R200_DRIVER_NAME;
+ else if (info->ChipFamily == CHIP_FAMILY_RV250)
+ pDRIInfo->clientDriverName = RV250_DRIVER_NAME;
else
pDRIInfo->clientDriverName = RADEON_DRIVER_NAME;
@@ -1346,6 +1350,9 @@
int req_minor, req_patch;
if (info->ChipFamily == CHIP_FAMILY_R200) {
+ req_minor = 5;
+ req_patch = 0;
+ } else if (info->ChipFamily == CHIP_FAMILY_RV250) {
req_minor = 5;
req_patch = 0;
} else {
diff -ru xc.orig/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
--- xc.orig/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c Sat Oct 26
00:33:56 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c Tue Oct 29 21:04:29
+2002
@@ -3450,12 +3450,6 @@
(pScrn->displayWidth * pScrn->virtualY *
info->CurrentLayout.pixel_bytes * 3 + 1023) / 1024);
info->directRenderingEnabled = FALSE;
- } else if (info->ChipFamily >= CHIP_FAMILY_RV250) {
- /* Is this correct or do RV250's and M9's work? */
- info->directRenderingEnabled = FALSE;
- xf86DrvMsg(scrnIndex, X_WARNING,
- "Direct rendering not yet supported on "
- "Radeon 9000 and newer cards\n");
} else {
if (info->IsSecondary)
info->directRenderingEnabled = FALSE;
diff -ru xc.orig/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h
xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h
--- xc.orig/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h Wed Oct 23
00:38:43 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h Tue Oct 29 21:05:46
+2002
@@ -27,6 +27,7 @@
#define RADEON_NAME "RADEON"
#define RADEON_DRIVER_NAME "radeon"
#define R200_DRIVER_NAME "r200"
+#define RV250_DRIVER_NAME "r200"
#define RADEON_VERSION_MAJOR 4
#define RADEON_VERSION_MINOR 0