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.
