UniNorth AGP: Some success

2 messages, 2 authors, 2001-08-14 · open the first message on its own page

UniNorth AGP: Some success

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2001-08-14 13:38:18

Ok, I've made some progress. It sort of works, but dies after a few
seconds. Here are the details:

 - Machine is a PowerBook "Pismo" with a rev. of UniNorth that can do x2
AGP only and no fast write (it does SBA fortunately). I use the alpha
nopage() code for userland mappings and a home made ioremap_agp() for in-
kernel mappings. Everything is mapped uncached, which is a performance
hit on PPC, I'll have to see how I can make things cachable by adding the
proper flush routines all over the place. X is 4.1 from top of 4.1 branch
in XFree CVS, DRM is hacked from the 2.4.8 kernel version.

 - glxgears display is sorta broken (but that happened with PCI GART as
well, so I beleive it's a problem with the GL driver vs. the Rage M3
(r128 mobility).

 - It's a bit slower than PCI GART (about 430 fps in gears, but it's not
stable, while PCI GART gives me a stable 474 fps). This may be partially
do to the fact that we have all the AGP memory uncachable, I think that
will prevent the PPC from doing write-combining.

 - After running for a few seconds with any GL app (I tried glxgears and
tuxracer), X dies with the message "drmR128SwapBuffers: return = -16". In
dmesg, I also have a bunch of:
[drm:r128_cce_vertex] *ERROR* ring space check failed!
[drm:r128_cce_vertex] *ERROR* ring space check failed!
[drm:r128_cce_vertex] *ERROR* ring space check failed!
[drm:r128_cce_vertex] *ERROR* ring space check failed!
[drm:r128_cce_vertex] *ERROR* ring space check failed!
etc... and one
[drm:r128_cce_swap] *ERROR* ring space check failed!

It seems to stop at this point.

Any clue what's up here ? I beleive I will have better perfs with more
recent Apple machines that can do x4 AGP and support fast write. Also,
the rage M3 is not a very fast chip anyway...

For those interested, the hacked code is available in my rsync kernel
tree at penguinppc.org::linux-2.4-benh

Regards,
Ben.


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

Re: UniNorth AGP: Some success

From: Michel Lanners <hidden>
Date: 2001-08-14 21:15:03

Hi all,

On  14 Aug, this message from Benjamin Herrenschmidt echoed through cyberspace:
 - Machine is a PowerBook "Pismo" with a rev. of UniNorth that can do x2
AGP only and no fast write (it does SBA fortunately). I use the alpha
nopage() code for userland mappings and a home made ioremap_agp() for in-
kernel mappings. Everything is mapped uncached, which is a performance
hit on PPC, I'll have to see how I can make things cachable by adding the
proper flush routines all over the place.
Depending on cache mode and data direction, you might not need cache
flushing. I mapped the 'control' framebuffer write-through; since only
the cpu writes there (it's not accelerated), that's ok without cache
flushing, but it does enable store gathering in the processor (and maybe
also in the PCI bridge; not sure...) Not sure whether that applies to
AGP as well.
 - It's a bit slower than PCI GART (about 430 fps in gears, but it's not
stable, while PCI GART gives me a stable 474 fps). This may be partially
do to the fact that we have all the AGP memory uncachable, I think that
will prevent the PPC from doing write-combining.
Yes, that's how I understand all the docs I read so far. I'd suggest
tackling cacheing issues first; that will probably provide the biggest
benefit.

Cheers, and happy hacking ;-)

Michel

-------------------------------------------------------------------------
Michel Lanners                 |  " Read Philosophy.  Study Art.
23, Rue Paul Henkes            |    Ask Questions.  Make Mistakes.
L-1710 Luxembourg              |
email   mlan@cpu.lu            |
http://www.cpu.lu/~mlan        |                     Learn Always. "


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help