I just realised that we're on directfb-users. I'm CCing directfb-dev
because that might be a better place for this conversation.

On Sat, Jul 13, 2002 at 11:50:38PM +1000, Brian wrote:
> On Saturday 13 July 2002 11:12 pm, you wrote:
> > On Sat, Jul 13, 2002 at 08:03:00PM +1000, Brian wrote:
> > > I probably need a source code example of the AGP transfer just to get an
> > > idea of where to start, agpgart is done and working, does Matrox AGP
> > > work under DirectFB?
> >
> > Not really. Some time ago I did a quick hack just to see if it works and
> > what kind of performance can be expected. I've attached the patch. It puts
> > all offscreen video surfaces into AGP memory. It should work for G200
> > and newer matrox cards. I'm not sure if it's any help to you. With matrox
> > cards using AGP is really easy. You just set a few bits to tell the card
> > that your surface is in AGP memory and the card takes care of the rest. I
> > have no idea how other cards do it.
> 
> I'll have a good look at this patch tomorrow, can I ask if you did get a
> speed up of data transfer, my datasheet says should get ~533Mb/s
> on AGPx2, and are you able to map directly to visual part of framebuffer?

That's the theoretical limit for AGP 2X, with 4X it should be just over
1GB/sec. Blits on my G400 produce the following: (4X, 32 bit)
AGP->AGP 43 MPixels/sec
AGP->card 107 MPixels/sec
So that about 170 MB/sec for AGP->AGP and 430 MB/sec for AGP->card. The
difference naturally comes from the fact that with AGP->AGP the data has
to travel the bus twice. The additional difference is probably due to
faster memory on the card and possibly bus communication overhead.

> 
> the Trident has 3 channels on AGP
> 
> 1. Execution mode access

Sounds like commanding the card with DMA.

> 2. Command list operation

Might be similiar to matrox setup DMA. It's used for vertex strips and
fans in OpenGL. Might be something else too.

> 3. data move

Might be similiar to matrox ILOAD operation. Used for texture uploads in
DRI. The image data is written to the DMA area (in system memory) and the
card transfers it to the framebuffer memory. This doesn't require AGP.

All this sounds more of commanding the card with DMA. With my patch the 
matrox cards simply use AGP memory like they would use the framebuffer. I
think most cards should be able do something like this. I'm not sure if
most cards can actually draw to AGP memory like matrox cards but at least
most should be able to do texturing from there.

> I'm interested in channel 3 which has an interupt, from what I have figured,
> should be able to mmap framebuffer from userspace and transfer at high
> speed with no processor intervention, ie. set and forget with interupt
> on completion. Does this sound familiar for Matrox??

I'm not sure what you mean here. mmaping the framebuffer and accessing it
directly always reqires cpu intervention. And what's worse the cpu has to
go through the slow bus to get there. What you want is having your image
in AGP memory. Accessing that with the cpu should be quite fast. Then when
you're done messing with the image you should have the card blit it to the
screen.

-- 
Ville Syrj�l�
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/


-- 
Info:  To unsubscribe send a mail to [EMAIL PROTECTED] with 
"unsubscribe directfb-dev" as subject.

Reply via email to