[NTLUG:Discuss] AGP Gart de-mystified (long)

Steve Baker sjbaker1 at airmail.net
Mon Jun 19 22:43:56 CDT 2000


"Matthew R. Pavlovich" wrote:

> BACKGROUND:
> AGP does some really cool things(tm).  First off, it has an increased
> bus speed, so it improves performance (66Mhz - 1x mode; 133Mhz - 2x
> mode, etc) of moving data from main memory to the video card.

Yep - I knew that.  What I didn't realise that there was some kind of
fallback PCI-bus emulation going on in there in the absence of AGP
drivers in the kernel.

Wow!  That means that the *AMAZINGLY FAST* GeForce graphics card would
be even faster if I had the thing set up right...that's incredible.

I'm looking at a $200 card that's already considerably faster than the
half million dollar SGI machines I use at work...and already the GeForce-2
is out that doubles that speed.  Moore's law simply doesn't apply here!

>  The
> second really cool thing, is its ability to utilize main memory as video
> memory.  Some of you may have seen this on some of the new low end atx
> boards that have video chips on board, in the BIOS you specify how much
> system memory you wish to set aside as frame buffer memory.

Dunno about "really cool"...I'd call this "really lame".  Your main memory
is a horribly limited resource - with modern super-fast CPU's, you need
every ounce of RAM bandwidth without a hungry graphics card eating much
of it.

Looking at it from the other side, the graphics card probably needs to
access:

  8 to 24 texels (16 or 32 bits each) read from texture memory
  1 colour (16 or 32 bits) from frame buffer (probably read/modify/write)
  1 Z (16 or 32 bits) from depth buffer (certainly read/modify/write)

...for a total of between 24 and 112 bytes PER PIXEL DRAWN.  Since some
modern graphics cards are pushing in excess of a Gigapixel per second,
you can see that doing texture and frame buffer access over a 133MHz
bus is pretty lame.

>  The third
> (and most useful IMHO) is the ability for the AGP chipset to represent
> fragmented sections of memory as one contiguous space.  This is most
> useful when optimizing DMA transfers for moving textures from disk to
> memory.

Yep - that's probably the number one benefit IMHO.

> 3dfx users- use 2.4.x (DRI module and AGP module) and X 4.0.1 you will
> have really good 3d.

Yep - I'm looking forward to doing that on my son's Voodoo-3.

> Nvidia- You are stuck using whatever nvidia releases, b/c they have not
> opened their device docs.  Their solution is a BINARY ONLY X 4.0 module
> that does not use DRI.  I am still trying to lobby Nvidia into changing
> their mind, but unfortunetely they have better driver programmers than
> anyone, and so they can actually afford to support Linux by themselves.
> (Makes the Open Source arguement more difficult).

Yep.  They have ported their windoze drivers to Linux - and I can tell you
that their maturity definitely shows through.  A number of minor problems
I've been assuming were application errors in my code 'went away' when I
started using the nVidia drivers...so now I'm backtracking through those
problems to see if I can pin them down as Mesa bugs - so far, three of
them certainly are.

OpenSource is nice - but fast, stable, conforming drivers are a luxury
it would be hard to give up.  I can understand why nVidia don't want to
do the major rework to get into DRI.

-- 
Steve Baker                  http://web2.airmail.net/sjbaker1
sjbaker1 at airmail.net (home)  http://www.woodsoup.org/~sbaker
sjbaker at hti.com      (work)




More information about the Discuss mailing list