Date: Mon, 23 Feb 2009 00:46:03 -0600 From: "Robert C. Noland III" <rnoland@2hip.net> To: vehemens <vehemens@verizon.net> Cc: freebsd-x11@freebsd.org Subject: Re: r6xx-r7xx drm patch and stuff Message-ID: <1235371563.1309.33.camel@widget.2hip.net> In-Reply-To: <200902221718.08192.vehemens@verizon.net> References: <200902221718.08192.vehemens@verizon.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-gHKhBITqD43ghkfzIV4/ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2009-02-22 at 17:18 -0800, vehemens wrote: > Have drm running with my R630, but there is some type of performance prob= lem=20 > (i.e. slow windows). >=20 > Given that I don't have the time to work the issue right now, here is my=20 > summary for those that want to give it a try. >=20 > If you start with drm git master 1) incorporate the local freebsd updates= , 2)=20 > incorporate the radeon updates from drm git r6xx-r7xx-support, and 3) add= the=20 > attached patch, you will have what I have. >=20 > For the video drivers, I have only tried the xf86-video-ati r6xx-r7xx-sup= port=20 > branch and not the xf86-video-radeonhd r6xx-r7xx-support branch. >=20 > There was a comment on radeonhd irc about backing out drm git=20 > r6xx-r7xx-support commit for "R6xx/R7xx: pad VB age submission to 8 dword= s",=20 > for the performance problem but that didn't help me with xf86-video-ati. Ok, this is more or less correct... I'll pull together a patch for -CURRENT and -STABLE either later tonight or tomorrow... BTW, this patch does not include the changes to the build system needed to compile the r600 code. robert. > --- r600_cp.c.orig 2009-02-19 23:07:23.000000000 -0800 > +++ r600_cp.c 2009-02-21 23:57:49.000000000 -0800 > @@ -429,13 +429,15 @@ > =20 > static void r600_page_table_cleanup(struct drm_device *dev, struct=20 > drm_ati_pcigart_info *gart_info) > { > +#ifdef __linux__ > struct drm_sg_mem *entry =3D dev->sg; > int max_pages; > int pages; > int i; > +#endif > =20 > if (gart_info->bus_addr) { > - > +#ifdef __linux__ > max_pages =3D (gart_info->table_size / sizeof(u32)); > pages =3D (entry->pages <=3D max_pages) > ? entry->pages : max_pages; > @@ -446,7 +448,7 @@ > pci_unmap_single(dev->pdev, entry->busaddr[i], > PAGE_SIZE, PCI_DMA_TODEVICE); > } > - > +#endif > if (gart_info->gart_table_location =3D=3D DRM_ATI_GART_MAIN) > gart_info->bus_addr =3D 0; > } > @@ -475,6 +477,7 @@ > memset(pci_gart, 0, max_pages * sizeof(u64)); > =20 > for (i =3D 0; i < pages; i++) { > +#ifdef __linux__ > entry->busaddr[i] =3D pci_map_single(dev->pdev, > page_address(entry-> > pagelist[i]), > @@ -485,7 +488,7 @@ > ret =3D -EINVAL; > goto done; > } > - > +#endif > entry_addr =3D entry->busaddr[i]; > for (j =3D 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) { > page_base =3D (u64) entry_addr & ATI_PCIGART_PAGE_MASK; > @@ -495,13 +498,15 @@ > *pci_gart =3D page_base; > =20 > if ((i % 128) =3D=3D 0) > - DRM_DEBUG("page entry %d: 0x%016llx\n", i, page_base); > + DRM_DEBUG("page entry %d: 0x%016lx\n", i, page_base); > pci_gart++; > entry_addr +=3D ATI_PCIGART_PAGE_SIZE; > } > } > =20 > +#ifdef __linux__ > done: > +#endif > return ret; > } > =20 >=20 >=20 > _______________________________________________ > freebsd-x11@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-x11 > To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org" --=20 Robert C. Noland III <rnoland@2hip.net> 2 Hip Networks --=-gHKhBITqD43ghkfzIV4/ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (FreeBSD) iEYEABECAAYFAkmiRisACgkQM4TrQ4qfROO2FACfctgWrJ9ff25Ja22vUzZmgEU1 kEQAn24VOU8l8x1+9yfWXD+0VfjkHxwp =KeKn -----END PGP SIGNATURE----- --=-gHKhBITqD43ghkfzIV4/--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1235371563.1309.33.camel>