#147992 - simonjhall - Mon Dec 31, 2007 3:42 pm
I've recently rejigged loads of my rendering code to use display lists, and I'm lovin' the speed increase.
However, reading the code in glCallList I'm just interested in a comment in there:
Although I don't actually use this function (I use something I wrote myself which does it asynchronously), Im a little worried by the comment right in the middle. Has anyone else had troubles with DMA to the graphics FIFO at the same time as other DMAs?
I don't bother wait for other DMAs whilst doing it and it works fine for me... Assuming there is some issue with doing other DMAs at the same time, what if ARM7 DMA is being used at the same time as the GFX DMA?
Unrelated: although the ARM7 can't talk to the 3D hardware, can ARM7 DMA transfer data to the GFX FIFO?
EDIT: no, it can't
Peace.
_________________
Big thanks to everyone who donated for Quake2
Last edited by simonjhall on Mon Dec 31, 2007 6:12 pm; edited 1 time in total
However, reading the code in glCallList I'm just interested in a comment in there:
Code: |
GL_STATIC_INL void glCallList(const u32* list) {
u32 count = *list++; // flush the area that we are going to DMA DC_FlushRange(list, count*4); // don't start DMAing while anything else is being DMAed because FIFO DMA is touchy as hell // If anyone can explain this better that would be great. -- gabebear while((DMA_CR(0) & DMA_BUSY)||(DMA_CR(1) & DMA_BUSY)||(DMA_CR(2) & DMA_BUSY)||(DMA_CR(3) & DMA_BUSY)); // send the packed list asynchronously via DMA to the FIFO DMA_SRC(0) = (uint32)list; DMA_DEST(0) = 0x4000400; DMA_CR(0) = DMA_FIFO | count; while(DMA_CR(0) & DMA_BUSY); } |
I don't bother wait for other DMAs whilst doing it and it works fine for me... Assuming there is some issue with doing other DMAs at the same time, what if ARM7 DMA is being used at the same time as the GFX DMA?
Unrelated: although the ARM7 can't talk to the 3D hardware, can ARM7 DMA transfer data to the GFX FIFO?
EDIT: no, it can't
Peace.
_________________
Big thanks to everyone who donated for Quake2
Last edited by simonjhall on Mon Dec 31, 2007 6:12 pm; edited 1 time in total