-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brian Paul wrote: > Ian Romanick wrote: >> >> I see some commits have gone into the Gallium tree for Cell >> infrastructure. What are the near-term (i.e., in the next week or so) >> plans? Since I'm working in this area, I want to avoid duplication of >> effort. :) >> >> I've got some code that I'm working on that is almost ready to commit. >> I took the softpipe code and modified it to generate quads in groups and >> pass the whole group down the pipeline. Once that was done, I moved the >> triangle setup code onto the SPE. SPE generates quads for one triangle >> at a time. The quads get sent back to the PPE in fixed size groups. >> The synchronization mechanism currently used is, frankly, crap. That >> code is pretty close to good. Once it is 100% golden, I'll start moving >> the other stages to the SPEs in short order. >> >> This is currently driven by a simple event loop on the SPE that reads >> from a mailbox. Right now there are only two messages from the PPE: >> start producing quads from a triangle and continue generating a group. >> It should be easy to add more messages (i.e., to load shader code, etc.). > > Your approach sounds a bit different than the tile-oriented approach > we've been planning. I'm not sure I follow the flow of things. Maybe > you could explain it a little more?
Right now the SPEs are just doing triangle setup. I did this because it seemed to be the easiest part to move to the SPEs in isolation. Though, I could I have started at the other end of the pipeline. The PPE sends the SPE information about the triangle, and the SPE generates the quads. This can easily transition to a tile-based approach. Once we have a group of quads, we know which tiles contain those quads. The quads can the be regrouped an processed in tile order. Quads can then be processed on the the triangle-setup SPE or distributed to other SPEs. At some point we'll want to tune this by scan converting by tile in Hibert curve order. In the meantime we can probably distribute the quads using a radix sort or similar. http://www.cgl.uwaterloo.ca/Projects/rendering/Papers/hilbertraster.pdf Interestingly, on a G5 I got a 10% - 20% performance improvement by doing quads in groups instead of sending on quad down the pipe at a time. We could probably optimize the non-Cell multi-processor case similarly. Have one core (thread) do triangle-setup. Other cores (threads) wait for a group of quads in one tile to be ready and process the group when available, etc. > So far, I've just been getting makefiles working and dabbling in some > initial PPU/SPU communication code/tests. I also found some > texture/pixel format issues with the current Gallium code due to the > Cell being big-endian. I'll try to check in some of these fixes soon. > > We also need to finish up some Xlib winsys work so that we can get the > Cell driver to produce images in on-screen X windows. The current Xlib > winsys still has dependencies on softpipe that need to be removed. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQFHVxPcX1gOwKyEAw8RAhm7AJ4hGPNW0t6EesePCPEWg/6comfxHwCffGJv /qtCoUR7qdZ135aoHJojk6g= =Ml8X -----END PGP SIGNATURE----- ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ Mesa3d-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
