gallium/cell: Remove the driver.
Complicates Gallium3D development and doesn't seem to have active users. Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org> Signed-off-by: José Fonseca <jfonseca@vmware.com>
This commit is contained in:
committed by
José Fonseca
parent
09e67706e9
commit
ccd4d4367f
-138
@@ -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>
|
||||
+1
-2
@@ -78,8 +78,7 @@ a:visited {
|
||||
<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
|
||||
<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
|
||||
<li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a>
|
||||
<LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A>
|
||||
<li><a href="cell.html" target="MainFrame">Cell Driver</A>
|
||||
<li><a HREF="dispatch.html" target="MainFrame">GL Dispatch</a>
|
||||
</ul>
|
||||
|
||||
<b>Links</b>
|
||||
|
||||
+1
-1
@@ -217,7 +217,7 @@ This is a bug-fix release.
|
||||
<h2>January 24, 2008</h2>
|
||||
|
||||
<p>
|
||||
Added a new page describing the <a href="cell.html">Mesa Cell driver</a>.
|
||||
Added a new page describing the Mesa Cell driver.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ tbd
|
||||
by the gallium drivers for this hardware.</li>
|
||||
<li>Removed the i965g driver, which was broken and with nobody in sight to fix
|
||||
the situation</li>
|
||||
<li>Removed the Gallium cell driver, it was just a burden on Gallium
|
||||
development and nobody seems to use it.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ baa7a1e850b6e39bae58868fd0684004 MesaGLUT-7.5.tar.bz2
|
||||
<ul>
|
||||
<li>softpipe - a software/reference driver
|
||||
<li>i915 - Intel 915/945 driver
|
||||
<li><a href="cell.html">Cell</a> - IBM/Sony/Toshiba Cell processor driver
|
||||
<li>Cell - IBM/Sony/Toshiba Cell processor driver
|
||||
<li>nouveau (for NVIDIA GPUs) and R300 for (AMD/ATI R300).
|
||||
<b>PLEASE NOTE: these drivers are incomplete and still under development.
|
||||
It's probably NOT worthwhile to report any bugs unless you have patches.
|
||||
|
||||
@@ -86,7 +86,6 @@ each directory.
|
||||
interfaces
|
||||
<li><b>drivers</b> - Gallium3D device drivers
|
||||
<ul>
|
||||
<li><b>cell</b> - Driver for Cell processor.
|
||||
<li><b>i915</b> - Driver for Intel i915/i945.
|
||||
<li><b>llvmpipe</b> - Software driver using LLVM for runtime code generation.
|
||||
<li><b>nv*</b> - Drivers for NVIDIA GPUs.
|
||||
|
||||
Reference in New Issue
Block a user