Merge remote branch 'origin/7.8'
[mesa.git] / src / gallium / drivers / llvmpipe / README
index 72d9f39658f259378d0836e1022b5c77c217cdae..3c3fd386b5283ad157079aad36a8226a2d42795d 100644 (file)
@@ -12,7 +12,11 @@ Done so far is:
    
    - depth testing
  
-   - texture sampling (not all state/formats are supported) 
+   - texture sampling
+     - 1D/2D/3D/cube maps supported
+     - all texture wrap modes supported
+     - all texture filtering modes supported
+     - perhaps not all texture formats yet supported
    
    - fragment shader TGSI translation
      - same level of support as the TGSI SSE2 exec machine, with the exception
@@ -37,8 +41,6 @@ To do (probably by this order):
 
  - code generate stipple and stencil testing
 
- - translate the remaining bits of texture sampling state
-
  - translate TGSI control flow instructions, and all other remaining opcodes
  
  - integrate with the draw module for VS code generation
@@ -49,8 +51,6 @@ To do (probably by this order):
 Requirements
 ============
 
- - Linux
  - A x86 or amd64 processor.  64bit mode is preferred.
  
    Support for sse2 is strongly encouraged.  Support for ssse3, and sse4.1 will
@@ -59,7 +59,7 @@ Requirements
    
    See /proc/cpuinfo to know what your CPU supports.
  
- - LLVM 2.6.
+ - LLVM 2.6 (or later)
  
    For Linux, on a recent Debian based distribution do:
  
@@ -69,6 +69,9 @@ Requirements
    http://people.freedesktop.org/~jrfonseca/llvm/ and set the LLVM environment
    variable to the extracted path.
 
+   The version of LLVM from SVN ("2.7svn") from mid-March 2010 seems pretty
+   stable and has some features not in version 2.6.
+
  - scons (optional)
 
  - udis86, http://udis86.sourceforge.net/ (optional):
@@ -86,7 +89,7 @@ Building
 
 To build everything on Linux invoke scons as:
 
-  scons debug=yes statetrackers=mesa drivers=trace,llvmpipe winsys=xlib dri=false
+  scons debug=yes statetrackers=mesa drivers=llvmpipe winsys=xlib dri=false
 
 Alternatively, you can build it with GNU make, if you prefer, by invoking it as
 
@@ -96,7 +99,7 @@ but the rest of these instructions assume that scons is used.
 
 For windows is everything the except except the winsys:
 
-  scons debug=yes statetrackers=mesa drivers=trace,llvmpipe winsys=gdi dri=false
+  scons debug=yes statetrackers=mesa drivers=llvmpipe winsys=gdi dri=false
 
 Using
 =====
@@ -142,11 +145,13 @@ Development Notes
   then skim through the lp_bld_* functions called in there, and the comments
   at the top of the lp_bld_*.c functions.  
 
-- All lp_bld_*.[ch] are isolated from the rest of the driver, and could/may be 
-  put in a stand-alone Gallium state -> LLVM IR translation module.
+- The driver-independent parts of the LLVM / Gallium code are found in
+  src/gallium/auxiliary/gallivm/.  The filenames and function prefixes
+  need to be renamed from "lp_bld_" to something else though.
 
 - We use LLVM-C bindings for now. They are not documented, but follow the C++
   interfaces very closely, and appear to be complete enough for code
   generation. See 
   http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html
   for a stand-alone example.
+  See the llvm-c/Core.h file for reference.