llvmpipe: Briefly describe current status.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 18 Aug 2009 16:36:13 +0000 (17:36 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sat, 29 Aug 2009 08:21:34 +0000 (09:21 +0100)
src/gallium/drivers/llvmpipe/README

index af0ef2b..2ac7e7c 100644 (file)
@@ -1,6 +1,38 @@
 LLVMPIPE -- a fork of softpipe that employs LLVM for code generation.
 
 
+Status
+======
+
+Done so far is:
+
+- TGSI -> LLVM fragment shader translation
+  - same level of support as the TGSI SSE2 exec machine
+  - texture sampling via an intrinsic call
+  - done in SoA
+  - input interpolation also code generated
+
+- blend -> LLVM (including logic ops)
+  - SoA and AoS, but only the former used
+
+- code is generic
+  - intermediates can be vectors of floats, ubytes, fixed point, etc, and of
+    any width and length
+  - not all operations are implemented for these types yet though
+
+Most mesa/progs/demos/* work. Speed is on par with Keith's softpipe-opt branch,
+which includes hand written fast implementations for common cases.
+
+To do (probably by this order):
+- code generate the rest of the fragment pipeline, namely the
+  depth/alpha/stencil state
+- concatenate the fragment pipeline (shader + depth/stencil/alpha + blend) in a
+  single function
+- code generate texture sampling
+- translate TGSI control flow instructions
+- code generate the triangle setup and rasterization
+
+
 Requirements
 ============