</p>
<ul>
<li>Point/line/triangle rendering, glDrawPixels
-<li>2D texture maps with nearest/linear/mipmap filtering
-<li>NPOT textures
-<li>Cube maps, to some extent
+<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>
-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.
+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>
<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.