From: Robert L. <bo...@ya...> - 2003-02-21 08:01:43
|
On Fri, 21 Feb 2003 05:27, Philip Brown wrote: > On Thu, Feb 20, 2003 at 04:53:24PM +0200, Levent Yavas wrote: > >... > > is this means pc dma controller cannot memcopy to video memory? i don't > > know much about that. > > > >... > > See below > > > >If you do, > > >perhaps you could modify them to copy from normal RAM space to video > > >memory, instead of the current methods that only do from video mem to > > > video mem. > > > > if you talk about screen to screen copy done in riva_ctx.c, i don't know > > anything about that. it should be accelerated by video card (xaa?). if > > you talk about texture uploading in riva_tex.c, it already copies texels > > from system ram to video ram. > > Yes, I am talking about screen to screen copy. > > If you take the video cpu instructions that tell the GPU > "copy THIS memory address (in video memory), to THAT memory address > (in video memory)", and adjust the first memory address to point to > something in "normal" memory, you would then effectively have > DMA transfer. > > This is "Dynamic Memory Access" by the GPU to main memory. DMA, of one > form. (there are other forms) > > I hope you would like to experiment with this. > If you want to try, I would suggest stealing the routines in the mga > driver that find memory suitable for DMA. > (and then see how it "locks" the user memory into physical address space) > > Once that is done, it should be reasonable for you to try the > "copy this address in main mem to that address in video mem" operation, > and see what happens. I sugest copying the XAA CPU code, and > making a new function riva_copy_mem_to_video() or something. > > I'd then suggest a simple test of just filling the userside DMA memory > chunk with 'white', aka 0xffffffff, then forcing a large copy to the main > video area somehow as an initial test. > > Maybe it's time for me to rationalise the memory allocation as we discussed. Memory locking and virtual-physical adress tranaslation was to be built in to that allocator |