summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-09-13 14:39:39 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-09-13 14:39:39 -0600
commit4db2a7f36cb8b4bf1325f3f9c57247fd5322f2ea (patch)
tree9fcb7a40cb70ca2fc9678b44e6a00f7799e0688b
parent1145042fd226beff26ecc52508c14e8d9794b674 (diff)
updated Cell driver info
-rw-r--r--docs/cell.html56
1 files changed, 43 insertions, 13 deletions
diff --git a/docs/cell.html b/docs/cell.html
index f9915d67e5..34d9a92723 100644
--- a/docs/cell.html
+++ b/docs/cell.html
@@ -6,7 +6,7 @@
<BODY>
-<H1>Mesa Cell Driver</H1>
+<H1>Mesa/Gallium Cell Driver</H1>
<p>
The Mesa
@@ -23,18 +23,19 @@ 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.
+The second phase is now underway.
</p>
<H2>Source Code</H2>
<p>
-The Cell driver source code is on the <code>gallium-0.1</code> branch of the
-git repository.
+The latest Cell driver source code is on the <code>gallium-0.2</code> branch
+of the Mesa 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
+ git-checkout -b gallium-0.2 origin/gallium-0.2
</pre>
<p>
To build the driver you'll need the IBM Cell SDK (version 2.1 or 3.0).
@@ -43,12 +44,13 @@ 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.
+If using Cell SDK 2.1, see the configs/linux-cell file for some
+special changes.
</p>
<p>
To compile the code, run <code>make linux-cell</code>.
+To build in debug mode, run <code>make linux-cell-debug</code>.
</p>
<p>
@@ -60,7 +62,7 @@ directory that contains <code>libGL.so</code>.
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
+ OpenGL renderer string: Gallium 0.2, Cell on Xlib
</pre>
@@ -77,21 +79,49 @@ 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
+As of September 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>
+<p>
+Runtime/dynamic code generation is being done for per-fragment
+operations (Z test, blend, etc) and for fragment programs (though only a
+few opcodes are implemented now).
+</p>
+<p>
+In general, however, the driver is rather slow because all vertex
+transformation is being done by an interpreter running on the PPU.
+Programs with many vertices or complex vertex shaders will run especially
+slow.
+This will be addressed in the future.
+</p>
+
+
+
+<H2>Debug Options</H2>
+
+<p>
+The CELL_DEBUG env var can be set to a comma-separated list of one or
+more of the following debug options:
+</p>
+<ul>
+<li><b>checker</b> - use a different background clear color for each SPU.
+ This lets you see which SPU is rendering which screen tiles.
+<li><b>sync</b> - wait/synchronize after each DMA transfer
+</ul>
+
+<p>
+If the GALLIUM_NOCELL env var is set, the softpipe driver will be used
+intead of the Cell driver.
+This is useful for comparison/validation.
+</p>
+
<H2>Contributing</H2>