diff options
Diffstat (limited to 'docs/cell.html')
-rw-r--r-- | docs/cell.html | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/docs/cell.html b/docs/cell.html deleted file mode 100644 index 30626b60b4..0000000000 --- a/docs/cell.html +++ /dev/null @@ -1,138 +0,0 @@ -<HTML> - -<TITLE>Cell Driver</TITLE> - -<link rel="stylesheet" type="text/css" href="mesa.css"></head> - -<BODY> - -<H1>Mesa/Gallium 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://wiki.freedesktop.org/wiki/Software/gallium" target="_parent">Gallium3D</a> -architecture. -Tungsten Graphics did the original implementation of the Cell driver. -</p> - - -<H2>Source Code</H2> - -<p> -The latest Cell driver source code is on the master branch of the Mesa -git repository. -</p> -<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 2.1, see the configs/linux-cell file for some -special changes. -</p> - -<p> -To compile the code, run <code>make linux-cell</code>. -Or to build in debug mode, run <code>make linux-cell-debug</code>. -</p> - -<p> -To use the library, make sure your current directory is the top of the -Mesa tree, then set <code>LD_LIBRARY_PATH</code> like this: -<pre> - export LD_LIBRARY_PATH=$PWD/lib/gallium:$PWD/lib/ -</pre> - -<p> -Verify that the Cell driver is being used by running -<code>progs/xdemos/glxinfo</code> and looking for: -<pre> - OpenGL renderer string: Gallium 0.3, 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> - - -<H2>Status</H2> - -<p> -As of October 2008, the driver runs quite a few OpenGL demos. -Features that work include: -</p> -<ul> -<li>Point/line/triangle rendering, glDrawPixels -<li>2D, NPOT and cube texture maps with nearest/linear/mipmap filtering -<li>Dynamic SPU code generation for fragment shaders, but not complete -<li>Dynamic SPU code generation for fragment ops (blend, Z-test, etc), but not complete -<li>Dynamic PPU/PPC code generation for vertex shaders, but not complete -</ul> -<p> -Performance has recently improved with the addition of PPC code generation -for vertex shaders, but the code quality isn't too great yet. -</p> -<p> -Another bottleneck is SwapBuffers. It may be the limiting factor for -many simple GL tests. -</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 -<li><b>asm</b> - print generated SPU assembly code to stdout -<li><b>fragops</b> - emit fragment ops debug messages -<li><b>fragopfallback</b> - don't use codegen for fragment ops -<li><b>cmd</b> - print SPU commands as their received -<li><b>cache</b> - print texture cache statistics when program exits -</ul> -<p> -Note that some of these options may only work for linux-cell-debug builds. -</p> - -<p> -If the GALLIUM_NOPPC env var is set, PPC code generation will not be used -and vertex shaders will be run with the TGSI interpreter. -</p> -<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> - -<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> |