3 <TITLE>Cell Driver
</TITLE>
5 <link rel=
"stylesheet" type=
"text/css" href=
"mesa.css"></head>
9 <H1>Mesa Cell Driver
</H1>
13 <a href=
"http://en.wikipedia.org/wiki/Cell_%28microprocessor%29" target=
"_parent">Cell
</a>
15 <a href=
"http://www.tungstengraphics.com/wiki/index.php/Gallium3D" target=
"_parent">Gallium3D
</a>
20 <a href=
"http://www.tungstengraphics.com/" target=
"_parent">Tungsten Graphics
</a>
21 is leading the project.
22 Two phases are planned.
23 First, to implement the framework for parallel rasterization using the Cell
24 SPEs, including texture mapping.
25 Second, to implement a full-featured OpenGL driver with support for GLSL, etc.
32 The Cell driver source code is on the
<code>gallium-
0.1</code> branch of the
34 After you've cloned the repository, check out the branch with:
37 git-checkout -b gallium-
0.1 origin/gallium-
0.1
40 To build the driver you'll need the IBM Cell SDK (version
2.1 or
3.0).
41 To use the driver you'll need a Cell system, such as a PS3 running Linux,
42 or the Cell Simulator (untested, though).
46 If using Cell SDK
3.0, first edit configs/linux-cell and add
47 <code>-DSPU_MAIN_PARAM_LONG_LONG
</code> to the SPU_CFLAGS.
51 To compile the code, run
<code>make linux-cell
</code>.
55 To use the library, make sure
<code>LD_LIBRARY_PATH
</code> points the Mesa/lib/
56 directory that contains
<code>libGL.so
</code>.
60 Verify that the Cell driver is being used by running
<code>glxinfo
</code>
63 OpenGL renderer string: Gallium
0.1, Cell on Xlib
67 <H2>Driver Implementation Summary
</H2>
70 Rasterization is parallelized across the SPUs in a tiled-based manner.
71 Batches of transformed triangles are sent to the SPUs (actually, pulled by from
72 main memory by the SPUs).
73 Each SPU loops over a set of
32x32-pixel screen tiles, rendering the triangles
75 Because of the limited SPU memory, framebuffer tiles are paged in/out of
76 SPU local store as needed.
77 Similarly, textures are tiled and brought into local store as needed.
81 More recently, vertex transformation has been parallelized across the SPUs
89 As of February
2008 the driver supports smooth/flat shaded triangle rendering
90 with Z testing and simple texture mapping.
91 Simple demos like gears run successfully.
92 To test texture mapping, try progs/demos/texcyl (press right mouse button for
100 If you're interested in contributing to the effort, familiarize yourself
101 with the code, join the
<a href=
"lists.html">mesa3d-dev mailing list
</a>,
102 and describe what you'd like to do.