diff options
Diffstat (limited to 'docs/cell.html')
-rw-r--r-- | docs/cell.html | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/docs/cell.html b/docs/cell.html new file mode 100644 index 0000000000..f9915d67e5 --- /dev/null +++ b/docs/cell.html @@ -0,0 +1,107 @@ +<HTML> + +<TITLE>Cell Driver</TITLE> + +<link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<H1>Mesa Cell Driver</H1> + +<p> +The Mesa +<a href="http://en.wikipedia.org/wiki/Cell_%28microprocessor%29" target="_parent">Cell</a> +driver is part of the +<a href="http://www.tungstengraphics.com/wiki/index.php/Gallium3D" target="_parent">Gallium3D</a> +architecture. +</p> + +<p> +<a href="http://www.tungstengraphics.com/" target="_parent">Tungsten Graphics</a> +is leading the project. +Two phases are planned. +First, to implement the framework for parallel rasterization using the Cell +SPEs, including texture mapping. +Second, to implement a full-featured OpenGL driver with support for GLSL, etc. +</p> + + +<H2>Source Code</H2> + +<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> + +<p> +To use the library, make sure <code>LD_LIBRARY_PATH</code> points the Mesa/lib/ +directory that contains <code>libGL.so</code>. +</p> + +<p> +Verify that the Cell driver is being used by running <code>glxinfo</code> +and looking for: +<pre> + OpenGL renderer string: Gallium 0.1, Cell on Xlib +</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 February 2008 the driver supports smooth/flat shaded triangle rendering +with Z testing and simple texture mapping. +Simple demos like gears run successfully. +To test texture mapping, try progs/demos/texcyl (press right mouse button for +rendering options). +</p> + + +<H2>Contributing</H2> + +<p> +If you're interested in contributing to the effort, familiarize yourself +with the code, join the <a href="lists.html">mesa3d-dev mailing list</a>, +and describe what you'd like to do. +</p> + + +</BODY> +</HTML> |