![](https://seccdn.libravatar.org/avatar/e6be5c2aafd856f8e01e8b0fbd66999e.jpg?s=120&d=mm&r=g)
On Mon, Feb 9, 2009 at 4:46 PM, Mark van Doesburg
Hi,
I am reading the code for the driver, just to get some idea how this thing works. But I have a question about the r600_exa.c copy code. This function uses the DI_PT_RECTLIST primitive. I don't think I understand how the overlapping copy code works. I think that if you can't alter the direction in which the address is incremented you would need an additional buffer to make this work correctly.
The current code works breaking the overlapping region down into regions the size of the non-overlapping part and copying them over one by one. That way you never have to worry about raster direction since you are always copying a non-overlapping part.
The register documentation gives another primitive type called DI_PT_2D_COPY_RECT_LIST_V[0-3]. Obviously I have no idea what this does, but I can guess that these four primitives are copy functions using four different incrementing orders.
Maybe someone with the documentation can answer this question?
Those primitives were designed for that purpose, but they don't work like the other primitives. The VGT and vertex setup setup is completely different. They were implemented for the 2D emulation in the CP microcode on r6xx chips. They aren't really supposed to be usable by software according to the hw folks. Alex -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org