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

Reply via email to