~ubuntu-branches/ubuntu/natty/mesa/natty-proposed

« back to all changes in this revision

Viewing changes to src/gallium/drivers/llvmpipe/README

  • Committer: Bazaar Package Importer
  • Author(s): Robert Hooker, Robert Hooker, Christopher James Halse Rogers
  • Date: 2010-09-14 08:55:40 UTC
  • mfrom: (1.2.28 upstream)
  • Revision ID: james.westby@ubuntu.com-20100914085540-m4fpl0hdjlfd4jgz
Tags: 7.9~git20100909-0ubuntu1
[ Robert Hooker ]
* New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413)
* New features include ATI HD5xxx series support in r600, and a vastly
  improved glsl compiler.
* Remove pre-generated .pc's, use the ones generated at build time
  instead.
* Remove all references to mesa-utils now that its no longer shipped
  with the mesa source.
* Disable the experimental ARB_fragment_shader option by default on
  i915, it exposes incomplete functionality that breaks KDE compositing
  among other things. It can be enabled via driconf still. (LP: #628930).

[ Christopher James Halse Rogers ]
* debian/patches/04_osmesa_version.diff:
  - Refresh for new upstream
* Bugs fixed in this release:
  - Fixes severe rendering corruption in Unity on radeon (LP: #628727,
    LP: #596292, LP: #599741, LP: #630315, LP: #613694, LP: #599741).
  - Also fixes rendering in gnome-shell (LP: #578619).
  - Flickering in OpenGL apps on radeon (LP: #626943, LP: #610541).
  - Provides preliminary support for new intel chips (LP: #601052).
* debian/rules:
  - Update configure flags to match upstream reshuffling.
  - Explicitly remove gallium DRI drivers that we don't want to ship.
* Update debian/gbp.conf for this Maverick-specific packaging
* libegl1-mesa-dri-x11,kms: There are no longer separate kms or x11 drivers
  for EGL, libegl1-mesa-drivers now contains a single driver that provides
  both backends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
   
13
13
   - depth testing
14
14
 
15
 
   - texture sampling (not all state/formats are supported) 
 
15
   - texture sampling
 
16
     - 1D/2D/3D/cube maps supported
 
17
     - all texture wrap modes supported
 
18
     - all texture filtering modes supported
 
19
     - perhaps not all texture formats yet supported
16
20
   
17
21
   - fragment shader TGSI translation
18
22
     - same level of support as the TGSI SSE2 exec machine, with the exception
37
41
 
38
42
 - code generate stipple and stencil testing
39
43
 
40
 
 - translate the remaining bits of texture sampling state
41
 
 
42
44
 - translate TGSI control flow instructions, and all other remaining opcodes
43
45
 
44
46
 - integrate with the draw module for VS code generation
57
59
   
58
60
   See /proc/cpuinfo to know what your CPU supports.
59
61
 
60
 
 - LLVM 2.6.
 
62
 - LLVM 2.6 (or later)
61
63
 
62
64
   For Linux, on a recent Debian based distribution do:
63
65
 
67
69
   http://people.freedesktop.org/~jrfonseca/llvm/ and set the LLVM environment
68
70
   variable to the extracted path.
69
71
 
 
72
   For MSVC there are two set of binaries: llvm-x.x-msvc32mt.7z and
 
73
   llvm-x.x-msvc32mtd.7z .
 
74
 
 
75
   You have to set the LLVM=/path/to/llvm-x.x-msvc32mtd env var when passing
 
76
   debug=yes to scons, and LLVM=/path/to/llvm-x.x-msvc32mt when building with
 
77
   debug=no. This is necessary as LLVM builds as static library so the chosen
 
78
   MS CRT must match.
 
79
 
 
80
   The version of LLVM from SVN ("2.7svn") from mid-March 2010 is pretty
 
81
   stable and has some features not in version 2.6.
 
82
 
70
83
 - scons (optional)
71
84
 
72
 
 - udis86, http://udis86.sourceforge.net/ (optional):
 
85
 - udis86, http://udis86.sourceforge.net/ (optional). My personal repository
 
86
   supports more opcodes which haven't been merged upstream yet:
73
87
 
74
 
     git clone git://udis86.git.sourceforge.net/gitroot/udis86/udis86
 
88
     git clone git://anongit.freedesktop.org/~jrfonseca/udis86
75
89
     cd udis86
76
90
     ./autogen.sh
77
91
     ./configure --with-pic
140
154
  then skim through the lp_bld_* functions called in there, and the comments
141
155
  at the top of the lp_bld_*.c functions.  
142
156
 
143
 
- All lp_bld_*.[ch] are isolated from the rest of the driver, and could/may be 
144
 
  put in a stand-alone Gallium state -> LLVM IR translation module.
 
157
- The driver-independent parts of the LLVM / Gallium code are found in
 
158
  src/gallium/auxiliary/gallivm/.  The filenames and function prefixes
 
159
  need to be renamed from "lp_bld_" to something else though.
145
160
 
146
161
- We use LLVM-C bindings for now. They are not documented, but follow the C++
147
162
  interfaces very closely, and appear to be complete enough for code
148
163
  generation. See 
149
164
  http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html
150
165
  for a stand-alone example.
 
166
  See the llvm-c/Core.h file for reference.