X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Fcell.html;h=30626b60b42be283e4985537eadfa9de484aa5a1;hb=ab56e3be9aae54602372427755305c354821e105;hp=34d9a92723154d0346430725928814839dca1fd7;hpb=89ab66448e1bcd78caab6678261c2885dcff741c;p=mesa.git diff --git a/docs/cell.html b/docs/cell.html index 34d9a927231..30626b60b42 100644 --- a/docs/cell.html +++ b/docs/cell.html @@ -12,31 +12,18 @@ The Mesa Cell driver is part of the -Gallium3D +Gallium3D architecture. -

- -

-Tungsten Graphics -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. -The second phase is now underway. +Tungsten Graphics did the original implementation of the Cell driver.

Source Code

-The latest Cell driver source code is on the gallium-0.2 branch -of the Mesa git repository. -After you've cloned the repository, check out the branch with: +The latest Cell driver source code is on the master branch of the Mesa +git repository.

-
-   git-checkout -b gallium-0.2 origin/gallium-0.2
-

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, @@ -50,19 +37,21 @@ special changes.

To compile the code, run make linux-cell. -To build in debug mode, run make linux-cell-debug. +Or to build in debug mode, run make linux-cell-debug.

-To use the library, make sure LD_LIBRARY_PATH points the Mesa/lib/ -directory that contains libGL.so. -

+To use the library, make sure your current directory is the top of the +Mesa tree, then set LD_LIBRARY_PATH like this: +
+  export LD_LIBRARY_PATH=$PWD/lib/gallium:$PWD/lib/
+

-Verify that the Cell driver is being used by running glxinfo -and looking for: +Verify that the Cell driver is being used by running +progs/xdemos/glxinfo and looking for:

-  OpenGL renderer string: Gallium 0.2, Cell on Xlib
+  OpenGL renderer string: Gallium 0.3, Cell on Xlib
 
@@ -83,23 +72,23 @@ Similarly, textures are tiled and brought into local store as needed.

Status

-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). +As of October 2008, the driver runs quite a few OpenGL demos. +Features that work include:

+

-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). +Performance has recently improved with the addition of PPC code generation +for vertex shaders, but the code quality isn't too great yet.

-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. +Another bottleneck is SwapBuffers. It may be the limiting factor for +many simple GL tests.

@@ -114,8 +103,20 @@ more of the following debug options:
  • checker - use a different background clear color for each SPU. This lets you see which SPU is rendering which screen tiles.
  • sync - wait/synchronize after each DMA transfer +
  • asm - print generated SPU assembly code to stdout +
  • fragops - emit fragment ops debug messages +
  • fragopfallback - don't use codegen for fragment ops +
  • cmd - print SPU commands as their received +
  • cache - print texture cache statistics when program exits +

    +Note that some of these options may only work for linux-cell-debug builds. +

    +

    +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. +

    If the GALLIUM_NOCELL env var is set, the softpipe driver will be used intead of the Cell driver.