On Tue, Oct 29, 2002 at 09:31:31PM +0000, [EMAIL PROTECTED] wrote:
> 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.
That is very interesting. I guess it's not too surprising since the Radeon
9000 is to the 8500 as the 7500 is to the 7200 (basically). When you say
"it's not perfect," what exactly doesn't work?
I have a couple comments about your patch, see below.
> 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;
The constructs like this should be:
if ( (info->ChipFamily == CHIP_FAMILY_R200)
|| (info->ChipFamily == CHIP_FAMILY_RV250) )
drmInfo.func = DRM_RADEON_INIT_R200_CP;
else
drmInfo.func = DRM_RADEON_INIT_CP;
There are several places like this.
> 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;
This absolutely needs to stay in! Taking this code out completely will
cause DRI to be enabled on 9500/9700 cards which will NOT work. :) In
stead, just change the 'else if' and the warning message (i.e., check for
9500/9700, etc.).
--
Smile! http://antwrp.gsfc.nasa.gov/apod/ap990315.html
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel