<p>
The Cell driver source code is on the <code>gallium-0.1</code> branch of the
git repository.
+After you've cloned the repository, check out the branch with:
+</p>
+<pre>
+ git-checkout -b gallium-0.1 origin/gallium-0.1
+</pre>
+<p>
To build the driver you'll need the IBM Cell SDK (version 2.1 or 3.0).
To use the driver you'll need a Cell system, such as a PS3 running Linux,
or the Cell Simulator (untested, though).
</p>
+<p>
+If using Cell SDK 3.0, first edit configs/linux-cell and add
+<code>-DSPU_MAIN_PARAM_LONG_LONG</code> to the SPU_CFLAGS.
+</p>
+
<p>
To compile the code, run <code>make linux-cell</code>.
</p>
</pre>
+<H2>Driver Implementation Summary</H2>
+
+<p>
+Rasterization is parallelized across the SPUs in a tiled-based manner.
+Batches of transformed triangles are sent to the SPUs (actually, pulled by from
+main memory by the SPUs).
+Each SPU loops over a set of 32x32-pixel screen tiles, rendering the triangles
+into each tile.
+Because of the limited SPU memory, framebuffer tiles are paged in/out of
+SPU local store as needed.
+Similarly, textures are tiled and brought into local store as needed.
+</p>
+
+<p>
+More recently, vertex transformation has been parallelized across the SPUs
+as well.
+</p>
+
+
<H2>Status</H2>
<p>
-As of January 2008 the driver supports smooth/flat shaded triangle rendering
-with Z testing.
+As of February 2008 the driver supports smooth/flat shaded triangle rendering
+with Z testing and simple texture mapping.
Simple demos like gears run successfully.
-Basic texture mapping should be working within a month.
-There's still unfinished work in the PPU-to-SPU communication facilities.
+To test texture mapping, try progs/demos/texcyl (press right mouse button for
+rendering options).
</p>