summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/GL3.txt69
-rw-r--r--docs/contents.html7
-rw-r--r--docs/egl.html242
-rw-r--r--docs/install.html9
-rw-r--r--docs/opengles.html79
-rw-r--r--docs/openvg.html19
-rw-r--r--docs/pbuffers.html54
-rw-r--r--docs/relnotes-7.8.html56
-rw-r--r--docs/relnotes.html2
-rw-r--r--docs/sourcetree.html165
10 files changed, 624 insertions, 78 deletions
diff --git a/docs/GL3.txt b/docs/GL3.txt
new file mode 100644
index 0000000000..df3fd74549
--- /dev/null
+++ b/docs/GL3.txt
@@ -0,0 +1,69 @@
+
+Status of OpenGL 3.x features in Mesa
+
+
+Note: when an item is marked as "DONE" it means all the core Mesa
+infrastructure is complete but it may be the case that few (if any) drivers
+implement the features.
+
+
+Feature Status
+----------------------------------------------------- ------------------------
+
+GL 3.0:
+
+GLSL changes (GL_EXT_gpu_shader4, etc) not started
+Conditional rendering (GL_NV_conditional_render) DONE (swrast & softpipe)
+Map buffer subranges (GL_APPLE_flush_buffer_range) not started
+Float textures, renderbuffers some infrastructure done
+Framebuffer objects (GL_EXT_framebuffer_object) DONE
+Half-float some infrastructure done
+Multisample blit DONE
+Non-normalized Integer texture/framebuffer formats not started
+1D/2D Texture arrays mostly done
+Packed depth/stencil formats DONE
+Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE
+GL_EXT_texture_compression_rgtc not started
+Red and red/green texture formats Ian?
+Transform feedback (GL_EXT_transform_feedback) not started
+Vertex array objects (GL_APPLE_vertex_array_object) DONE
+sRGB framebuffer format (GL_EXT_framebuffer_sRGB) not started
+glClearBuffer commands DONE, except for dispatch
+glGetStringi command DONE, except for dispatch
+glTexParameterI, glGetTexParameterI commands DONE, except for dispatch
+glVertexAttribI commands not started
+glBindFragDataLocation, glGetFragDataLocation cmds not started
+glBindBufferRange, glBindBufferBase commands not started
+
+
+GL 3.1:
+
+GLSL 1.30 and 1.40 not started
+Instanced drawing (GL_ARB_draw_instanced) not started
+Buffer copying (GL_ARB_copy_buffer) DONE
+Primitive restart (GL_NV_primitive_restart) not started
+16 vertex texture image units not started
+Texture buffer objs (GL_ARB_textur_buffer_object) not started
+Rectangular textures (GL_ARB_texture_rectangle) DONE
+Uniform buffer objs (GL_ARB_uniform_buffer_object) not started
+Signed normalized texture formats not started
+
+
+GL 3.2:
+
+Core/compatibility profiles not started
+GLSL 1.50 not started
+Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack)
+BGRA vertex order (GL_ARB_vertex_array_bgra) DONE
+Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE
+Frag shader coord (GL_ARB_fragment_coord_conventions) not started
+Provoking vertex (GL_ARB_provoking_vertex) DONE
+Seamless cubemaps (GL_ARB_seamless_cube_map) DONE, mostly?
+Multisample textures (GL_ARB_texture_multisample) not started
+Frag depth clamp (GL_ARB_depth_clamp) DONE
+Fence objects (GL_ARB_sync) DONE
+
+
+
+More info about these features and the work involved can be found at
+http://dri.freedesktop.org/wiki/MissingFunctionality
diff --git a/docs/contents.html b/docs/contents.html
index d15e6c1e33..f0646ffb40 100644
--- a/docs/contents.html
+++ b/docs/contents.html
@@ -52,9 +52,12 @@ a:visited {
<b>User Topics</b>
<ul>
+<li><a href="shading.html" target="MainFrame">Shading Language</a>
+<li><a href="egl.html" target="MainFrame">EGL</a>
+<li><a href="opengles.html" target="MainFrame">OpenGL ES</a>
+<li><a href="openvg.html" target="MainFrame">OpenVG / Vega</a>
<LI><A HREF="envvars.html" target="MainFrame">Environment Variables</A>
<LI><A HREF="osmesa.html" target="MainFrame">Off-Screen Rendering</A>
-<LI><A HREF="pbuffers.html" target="MainFrame">Pbuffer Rendering</A>
<LI><A HREF="debugging.html" target="MainFrame">Debugging Tips</A>
<LI><A HREF="perf.html" target="MainFrame">Performance Tips</A>
<LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A>
@@ -65,8 +68,8 @@ a:visited {
<ul>
<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
+<li><a href="sourcetree.html" target="MainFrame">Source Code Tree</a>
<li><a href="memory.html" target="MainFrame">DRI Memory Management</a>
-<li><a href="shading.html" target="MainFrame">Shading Language</a>
<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
<li><a href="utilities.html" target="MainFrame">Utilities</a>
<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
diff --git a/docs/egl.html b/docs/egl.html
new file mode 100644
index 0000000000..305e5f6eab
--- /dev/null
+++ b/docs/egl.html
@@ -0,0 +1,242 @@
+<html>
+
+<title>Mesa EGL</title>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<body>
+
+<h1>Mesa EGL</h1>
+
+<p>The current version of EGL in Mesa implements EGL 1.4. More information
+about EGL can be found at
+<a href="http://www.khronos.org/egl/" target="_parent">
+http://www.khronos.org/egl/</a>.</p>
+
+<p>The Mesa's implementation of EGL uses a driver architecture. The main
+library (<code>libEGL</code>) is window system neutral. It provides the EGL
+API entry points and helper functions for use by the drivers. Drivers are
+dynamically loaded by the main library and most of the EGL API calls are
+directly dispatched to the drivers.</p>
+
+<p>The driver in use decides the window system to support. For drivers that
+support hardware rendering, there are usually multiple drivers supporting the
+same window system. Each one of of them supports a certain range of graphics
+cards.</p>
+
+<h2>Build EGL</h2>
+
+<ol>
+<li>
+<p>Run <code>configure</code> with the desired state trackers and and enable
+the Gallium driver for your hardware. For example</p>
+
+<pre>
+ $ ./configure --with-state-trackers=egl,es,vega --enable-gallium-{swrast,intel}
+</pre>
+
+<p>The main library will be enabled by default. The <code>egl</code> state
+tracker is needed by a number of EGL drivers. EGL drivers will be covered
+later. The <a href="opengles.html">es state tracker</a> provides OpenGL ES 1.x
+and 2.x and the <a href="openvg.html">vega state tracker</a> provides OpenVG
+1.x.</p>
+</li>
+
+<li>Build and install Mesa as usual.</li>
+</ol>
+
+<p>In the given example, it will build and install <code>libEGL</code>,
+<code>libGLESv1_CM</code>, <code>libGLESv2</code>, <code>libOpenVG</code>, and
+one or more EGL drivers.</p>
+
+<h3>Configure Options</h3>
+
+<p>There are several options that control the build of EGL at configuration
+time</p>
+
+<ul>
+<li><code>--enable-egl</code>
+
+<p>By default, EGL is enabled. When disabled, the main library and the drivers
+will not be built.</p>
+
+</li>
+
+<li><code>--with-egl-driver-dir</code>
+
+<p>The directory EGL drivers should be installed to. If not specified, EGL
+drivers will be installed to <code>${libdir}/egl</code>.</p>
+
+</li>
+
+<li><code>--with-egl-displays</code>
+
+<p>List the window system(s) to support. It is by default <code>x11</code>,
+which supports the X Window System. Its argument is a comma separated string
+like, for example, <code>--with-egl-displays=x11,kms</code>. Because an EGL
+driver decides which window system to support, this example will enable two
+(sets of) EGL drivers. One supports the X window system and the other supports
+bare KMS (kernel modesetting).</p>
+
+</li>
+
+<li><code>--with-state-trackers</code>
+
+<p>The argument is a comma separated string. It is usually used to specify the
+rendering APIs, like OpenGL ES or OpenVG, to build. But it should be noted
+that a number of EGL drivers depend on the <code>egl</code> state tracker.
+They will <em>not</em> be built without the <code>egl</code> state tracker.</p>
+
+</li>
+
+<li><code>--enable-gallium-swrast</code>
+
+<p>This option is not specific to EGL. But if there is no driver for your
+hardware, or you are experiencing problems with the hardware driver, you can
+enable the swrast DRM driver. It is a dummy driver and EGL will fallback to
+software rendering automatically.</p>
+
+</li>
+</ul>
+
+<h3>OpenGL</h3>
+
+<p>The OpenGL state tracker is not built in the above example. It should be
+noted that the classic <code>libGL</code> is not a state tracker and cannot be
+used with EGL (unless the EGL driver in use is <code>egl_glx</code>). To build
+the OpenGL state tracker, one may append <code>glx</code> to
+<code>--with-state-trackers</code> and manually build
+<code>src/gallium/winsys/xlib/</code>.</p>
+
+<h2>Use EGL</h2>
+
+<p> The demos for OpenGL ES and OpenVG can be found in <code>progs/es1/</code>,
+<code>progs/es2/</code> and <code>progs/openvg/</code>. You can use them to
+test your build. For example,</p>
+
+<pre>
+ $ cd progs/es1/xegl
+ $ make
+ $ ./torus
+</pre>
+
+<h3>Environment Variables</h3>
+
+<p>There are several environment variables that control the behavior of EGL at
+runtime</p>
+
+<ul>
+<li><code>EGL_DRIVER</code>
+
+<p>This variable forces the specified EGL driver to be loaded. It comes in
+handy when one wants to test a specific driver.</p>
+
+</li>
+
+<li><code>EGL_DISPLAY</code>
+
+<p>When <code>EGL_DRIVER</code> is not set, the main library loads <em>all</em>
+EGL drivers that support a certain window system. <code>EGL_DISPLAY</code> can
+be used to specify the window system and the valid values are, for example,
+<code>x11</code> or <code>kms</code>. When the variable is not set, the main
+library defaults the value to the first window system listed in
+<code>--with-egl-displays</code> at configuration time.
+
+</li>
+
+<li><code>EGL_LOG_LEVEL</code>
+
+<p>This changes the log level of the main library and the drivers. The valid
+values are: <code>debug</code>, <code>info</code>, <code>warning</code>, and
+<code>fatal</code>.</p>
+
+</li>
+
+<li><code>EGL_SOFTWARE</code>
+
+<p>For drivers that support both hardware and software rendering, setting this
+variable to true forces the use of software rendering.</p>
+
+</li>
+</ul>
+
+<h2>EGL Drivers</h2>
+
+<p>There are two categories of EGL drivers: Gallium and classic.</p>
+
+<p>Gallium EGL drivers supports all rendering APIs specified in EGL 1.4. The
+support for optional EGL functions and EGL extensions is usually more complete
+than the classic ones. These drivers depend on the <code>egl</code> state
+tracker to build. The available drivers are</p>
+
+<ul>
+<li><code>egl_&lt;dpy&gt;_i915</code></li>
+<li><code>egl_&lt;dpy&gt;_i965</code></li>
+<li><code>egl_&lt;dpy&gt;_radeon</code></li>
+<li><code>egl_&lt;dpy&gt;_nouveau</code></li>
+<li><code>egl_&lt;dpy&gt;_swrast</code></li>
+<li><code>egl_&lt;dpy&gt;_vmwgfx</code></li>
+</ul>
+
+<p><code>&lt;dpy&gt;</code> is given by <code>--with-egl-displays</code> at
+configuration time. There will be one EGL driver for each combination of the
+displays listed and the hardware drivers enabled.</p>
+
+<p>Classic EGL drivers, on the other hand, supports only OpenGL as its
+rendering API. They can be found under <code>src/egl/drivers/</code>. There
+are 3 of them</p>
+
+<ul>
+<li><code>egl_glx</code>
+
+<p>This driver provides a wrapper to GLX. It uses exclusively GLX to implement
+the EGL API. It supports both direct and indirect rendering when the GLX does.
+It is accelerated when the GLX is. As such, it cannot provide functions that
+is not available in GLX or GLX extensions.</p>
+</li>
+
+<li><code>egl_xdri</code>
+
+<p>This driver supports the X Window System as its window system. It functions
+as a DRI driver loader and can load DRI/DRI2/DRISW drivers. Unlike
+<code>egl_glx</code>, it has no dependency on <code>libGL</code>. It talks to
+the X server directly using DRI or DRI2 protocols. It also talks minimal GLX
+protocol for things like available visuals or fbconfigs. With direct access to
+the DRI drivers, it has the potential to support more EGL functions that are
+not possible with <code>egl_glx</code>.</p>
+
+</li>
+<li><code>egl_dri</code>
+
+<p>This driver lacks maintenance and does <em>not</em> build. It is similiar
+to <code>egl_xdri</code> in that it functions as a DRI driver loader. But
+unlike <code>egl_xdri</code>, it supports Linux framebuffer devices as its
+window system and supports EGL_MESA_screen_surface extension. It loads only
+DRI1 drivers. As DRI1 drivers is phasing out, it might be better to rewrite
+the driver to support KMS and DRI2.</p>
+
+</li>
+</ul>
+
+<p>To use the classic drivers, one must manually set <code>EGL_DRIVER</code> at
+runtime.</p>
+
+<h2>Developers</h2>
+
+The sources of the main library and the classic drivers can be found at
+<code>src/egl/</code>. The sources of the <code>egl</code> state tracker can
+be found at <code>src/gallium/state_trackers/egl/</code>.
+
+<h3>TODOs</h3>
+
+<ul>
+<li>Thread safety</li>
+<li>Pass the conformance tests</li>
+<li>Better automatic driver selection: <code>EGL_DISPLAY</code> loads all
+drivers and might eat too much memory.</li>
+<li>Stop using <code>glxinit.c</code> and sources from <code>src/glx/x11/</code></li>
+
+</ul>
+
+</body>
+</html>
diff --git a/docs/install.html b/docs/install.html
index 8c24cee7a3..5aea92e0b5 100644
--- a/docs/install.html
+++ b/docs/install.html
@@ -352,19 +352,10 @@ by -debug for debug builds.
</p>
<p>
-The sample programs are built seperately. To build them do
-<pre>
- scons -C progs
-</pre>
-And the build output will be placed in progs/build/...
-</p>
-
-<p>
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
</p>
<pre>
scons platform=windows toolchain=crossmingw machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi
- scons -C progs platform=windows toolchain=crossmingw machine=x86 -k
</pre>
<p>
This will create:
diff --git a/docs/opengles.html b/docs/opengles.html
new file mode 100644
index 0000000000..fc41e6771c
--- /dev/null
+++ b/docs/opengles.html
@@ -0,0 +1,79 @@
+<html>
+
+<title>OpenGL ES State Trackers</title>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<body>
+
+<h1>OpenGL ES State Trackers</h1>
+
+<p>The current version of the OpenGL ES state trackers implement OpenGL ES 1.1 and OpenGL ES 2.0.
+More informations about OpenGL ES can be found at
+<a href="http://www.khronos.org/opengles/" target="_parent">
+http://www.khronos.org/opengles/</a>.</p>
+
+<p>The OpenGL ES state trackers depends on the Gallium architecture and a
+working EGL implementation. Please refer to <a href="egl.html">Mesa EGL</a>
+for more information about EGL.</p>
+
+
+<h2>Build the Libraries</h2>
+<ol>
+<li>Run <code>configure</code> with <code>--with-state-trackers=egl,es</code> and enable the Gallium driver for your hardware.</li>
+<li>Build and install Mesa as usual.</li>
+</ol>
+
+<p>It will install libGLESv1_CM, libGLESv2, libEGL, and one or more EGL drivers for your hardware.</p>
+<h2>Run the Demos</h2>
+
+<p>There are some demos in <code>progs/es1/</code> and <code>progs/es2/</code>. You can use them to test your build. For example,</p>
+
+<pre>
+ $ cd progs/es1/xegl
+ $ make
+ $ ./torus
+</pre>
+
+<h2>Developers</h2>
+
+<p>The core of OpenGL ES state trackers is the ES overlay. It is located in
+<code>src/mesa/es/</code>.</p>
+
+<h3>Structure</h3>
+
+<p>The ES overlay uses as much code as possible from Mesa. It has its own glapi XMLs to describe the APIs of OpenGL ES. The ES overlay can be built parallelly with Mesa, and they will give</p>
+
+<table border="1">
+ <tr><td>Library Name</td><td>Usage</td><td>Source</td></tr>
+ <tr><td>libmesagallium.a</td><td>OpenGL state tracker</td><td>Mesa</td></tr>
+ <tr><td>libes1gallium.a</td><td>OpenGL ES 1.x state tracker</td><td>ES overlay</td></tr>
+ <tr><td>libes2gallium.a</td><td>OpenGL ES 2.x state tracker</td><td>ES overlay</td></tr>
+ <tr><td>libglapi.a</td><td>OpenGL API</td><td>Mesa</td></tr>
+ <tr><td>libes1api.a</td><td>OpenGL ES 1.x API</td><td>ES overlay</td></tr>
+ <tr><td>libes2api.a</td><td>OpenGL ES 2.x API</td><td>ES overlay</td></tr>
+</table>
+
+<p>The OpenGL ES state trackers and APIs are then used by <code>src/gallium/state_trackers/es/</code> to create the final libraries.</p>
+
+<h3>Dispatch Table</h3>
+
+<p>The ES overlay uses an additional indirection when dispatching fucntions</p>
+
+<pre>
+ Mesa: glFoo() --&gt; _mesa_Foo()
+ ES overlay: glFoo() --&gt; _es_Foo() --&gt; _mesa_Foo()
+</pre>
+
+<p>The indirection serves several purposes</p>
+
+<ul>
+<li>When a function is in Mesa and the type matches, it checks the arguments and calls the Mesa function.</li>
+<li>When a function is in Mesa but the type mismatches, it checks and converts the arguments before calling the Mesa function.</li>
+<li>When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.</li>
+</ul>
+
+<p>Other than the last case, the ES overlay uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
+
+</body>
+</html>
diff --git a/docs/openvg.html b/docs/openvg.html
index 442ee522f1..cdf6b57e0f 100644
--- a/docs/openvg.html
+++ b/docs/openvg.html
@@ -1,6 +1,6 @@
<HTML>
-<TITLE>Mesa Release Notes</TITLE>
+<TITLE>OpenVG State Tracker</TITLE>
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
@@ -20,12 +20,13 @@ http://www.khronos.org/openvg/</a> .
</p>
<p>
The OpenVG state tracker depends on the Gallium architecture and a working EGL implementation.
+Please refer to <a href="egl.html">Mesa EGL</a> for more information about EGL.
</p>
<h2>Building the library</h2>
<ol>
-<li>Build Mesa3D with Gallium3D. Any build that builds Gallium3D libraries and EGL will suffice</li>
+<li>Build Mesa3D with Gallium3D. Any build that builds Gallium3D libraries, EGL, and Gallium EGL drivers will suffice</li>
<li>cd src/gallium/state_trackers/vega; make</li>
<li>The last step will build libOpenVG library. You can add the libdir to LD_LIBRARY_PATH or install libOpenVG</li>
</ol>
@@ -33,12 +34,9 @@ The OpenVG state tracker depends on the Gallium architecture and a working EGL i
<h3>Sample build</h3>
A sample build looks as follows:
<pre>
- make linux-x86-64-debug
- cd src/gallium/state_trackers/vega
- make
- cd ../../../..
- export LD_LIBRARY_PATH=$PWD/lib64
- export EGL_DRIVER="egl_softpipe"
+ $ ./configure --with-state-trackers=egl,vega --enable-gallium-intel
+ $ make
+ $ make install
</pre>
<h2>OpenVG Demos</h2>
@@ -59,10 +57,5 @@ To run a demo:
</pre>
-<h2>Notes</h2>
-<ul>
-<li>EGL_DRIVER environmental variable: forces usage of a specific EGL driver. Unless you force egl_softpipe the implementation will look for a DRI hardware accelerate driver and unless you have a Gallium driver that supports it, you'll see crashes</li>
-</ul>
-
</body>
</html>
diff --git a/docs/pbuffers.html b/docs/pbuffers.html
deleted file mode 100644
index 2599101555..0000000000
--- a/docs/pbuffers.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<HTML>
-
-<TITLE>PBuffer Rendering</TITLE>
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<BODY>
-
-<H1>PBuffer Rendering</H1>
-
-<p>
-Basically, FBconfigs and PBuffers allow you to do off-screen rendering
-with OpenGL. The OSMesa interface does basically the same thing, but
-fbconfigs and pbuffers are supported by more vendors.
-PBuffer rendering may also be hardware accelerated.
-</p>
-
-<p>
-PBuffers are getting more use nowadays, though they've actually been
-around for a long time on IRIX systems and other workstations.
-</p>
-
-<p>
-The
-<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt"
-target="_parent">GL_SGIX_fbconfig</a>
-and
-<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt"
-target="_parent">
-GL_SGIX_pbuffer</a> extensions describe the functionality.
-More recently, these extensions have been promoted to ARB extensions (on
-Windows at least).
-</p>
-
-<p>
-The Mesa/progs/xdemos/ directory has some useful code for working
-with pbuffers:
-</p>
-
-<ul>
-<li><b>pbinfo.c</b> - like glxinfo, it prints a list of available
- fbconfigs and whether each supports pbuffers.
-<li><b>pbutil.c</b> - a few utility functions for dealing with
- fbconfigs and pbuffers.
-<li><b>pbdemo.c</b> - a demonstration of off-screen rendering with pbuffers.
-</ul>
-
-<p>
-Mesa 4.1 and later support GL_SGIX_fbconfig and GL_SGIX_pbuffer (software
-rendering only).
-</p>
-
-</BODY>
-</HTML>
diff --git a/docs/relnotes-7.8.html b/docs/relnotes-7.8.html
new file mode 100644
index 0000000000..4fcc491036
--- /dev/null
+++ b/docs/relnotes-7.8.html
@@ -0,0 +1,56 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 7.8 Release Notes / date TBD</H1>
+
+<p>
+Mesa 7.8 is a new development release.
+People who are concerned with stability and reliability should stick
+with a previous release or wait for Mesa 7.8.1.
+</p>
+<p>
+Mesa 7.8 implements the OpenGL 2.1 API, but the version reported by
+glGetString(GL_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 2.1.
+</p>
+<p>
+See the <a href="install.html">Compiling/Installing page</a> for prerequisites
+for DRI hardware acceleration.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+tbd
+</pre>
+
+
+<h2>New features</h2>
+<ul>
+<li>GL_NV_conditional_render extension (swrast driver only)
+<li>GL_EXT_draw_buffers2 extension (swrast driver only)
+<li>Much improved support for <a href="egl.html">EGL in Mesa</a>
+<li>New state trackers for <a href="opengles.html">OpenGL ES 1.1 and 2.0</a>
+</ul>
+
+
+<h2>Bug fixes</h2>
+<ul>
+<li>TBD
+</ul>
+
+
+<h2>Changes</h2>
+<ul>
+<li>TBD
+</ul>
+
+</body>
+</html>
diff --git a/docs/relnotes.html b/docs/relnotes.html
index b06548ae61..f1f95c5d3c 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -13,6 +13,8 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<UL>
+<<<<<<< HEAD:docs/relnotes.html
+<LI><A HREF="relnotes-7.8.html">7.8 release notes</A>
<LI><A HREF="relnotes-7.7.1.html">7.7.1 release notes</A>
<LI><A HREF="relnotes-7.7.html">7.7 release notes</A>
<LI><A HREF="relnotes-7.6.1.html">7.6.1 release notes</A>
diff --git a/docs/sourcetree.html b/docs/sourcetree.html
new file mode 100644
index 0000000000..00dc4e7c9f
--- /dev/null
+++ b/docs/sourcetree.html
@@ -0,0 +1,165 @@
+<HTML>
+
+<TITLE>Mesa Source Tree</TITLE>
+
+<link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<h1>Mesa source code tree overview</h1>
+
+<p>
+This is a brief summary of Mesa's directory tree and what's contained in
+each directory.
+</p>
+
+
+<ul>
+<li><b>docs</b> - Documentation
+<li><b>include</b> - Public OpenGL header files
+<li><b>src</b>
+ <ul>
+ <li><b>egl</b> - EGL library sources
+ <ul>
+ <li><b>docs</b> - EGL documentation
+ <li><b>drivers</b> - EGL drivers
+ <li><b>main</b> - main EGL library implementation. This is where all
+ the EGL API functions are implemented, like eglCreateContext().
+ </ul>
+ <li><b>mesa</b> - Main Mesa sources
+ <ul>
+ <li><b>glapi</b> - OpenGL API dispatch layer. This is where all the
+ GL entrypoints like glClear, glBegin, etc. are generated, as well as
+ the GL dispatch table. All GL function calls jump through the
+ dispatch table to functions found in main/.
+ <li><b>main</b> - The core Mesa code (mainly state management)
+ <li><b>drivers</b> - Mesa drivers (not used with Gallium)
+ <ul>
+ <li><b>common</b> - code which may be shared by all drivers
+ <li><b>dri</b> - Direct Rendering Infrastructure drivers
+ <ul>
+ <li><b>common</b> - code shared by all DRI drivers
+ <li><b>i915</b> - driver for Intel i915/i945
+ <li><b>i965</b> - driver for Intel i965
+ <li>XXX more
+ </ul>
+ <li><b>x11</b> - Xlib-based software driver
+ <li><b>osmesa</b> - off-screen software driver
+ <li><b>glslcompiler</b> - a stand-alone GLSL compiler driver
+ <li>XXX more
+ </ul>
+ <li><b>es</b> - OpenGL ES overlay, parallelly buildable with the core Mesa
+ <li><b>math</b> - vertex array translation and transformation code
+ (not used with Gallium)
+ <li><b>ppc</b> - Assembly code/optimizations for PPC systems
+ (not used with Gallium)
+ <li><b>shader</b> - Vertex/fragment shader and GLSL compiler code
+ <li><b>sparc</b> - Assembly code/optimizations for SPARC systems
+ (not used with Gallium)
+ <li><b>state_tracker</b> - State tracker / driver for Gallium. This
+ is basically a Mesa device driver that speaks to Gallium. This
+ directory may be moved to src/mesa/drivers/gallium at some point.
+ <li><b>swrast</b> - Software rasterization module. For drawing points,
+ lines, triangles, bitmaps, images, etc. in software.
+ (not used with Gallium)
+ <li><b>swrast_setup</b> - Software primitive setup. Does things like
+ polygon culling, glPolygonMode, polygon offset, etc.
+ (not used with Gallium)
+ <li><b>tnl</b> - Software vertex Transformation 'n Lighting.
+ (not used with Gallium)
+ <li><b>tnl_dd</b> - TNL code for device drivers.
+ (not used with Gallium)
+ <li><b>vbo</b> - Vertex Buffer Object code. All drawing with
+ glBegin/glEnd, glDrawArrays, display lists, etc. goes through this
+ module. The results is a well-defined set of vertex arrays which
+ are passed to the device driver (or tnl module) for rendering.
+ <li><b>vf</b> - vertex format conversion (currently unused)
+ <li><b>x86</b> - Assembly code/optimizations for 32-bit x86 systems
+ (not used with Gallium)
+ <li><b>x86-64</b> - Assembly code/optimizations for 64-bit x86 systems
+ (not used with Gallium)
+ </ul>
+ <li><b>gallium</b> - Gallium3D source code
+ <ul>
+ <li><b>include</b> - Gallium3D header files which define the Gallium3D
+ interfaces
+ <li><b>drivers</b> - Gallium3D device drivers
+ <ul>
+ <li><b>cell</b> - Driver for Cell processor.
+ <li><b>i915</b> - Driver for Intel i915/i945.
+ <li><b>i965</b> - Driver for Intel i965.
+ <li><b>llvmpipe</b> - Software driver using LLVM for runtime code generation.
+ <li><b>nv*</b> - Drivers for NVIDIA GPUs.
+ <li><b>r300</b> - Driver for ATI/AMD R300.
+ <li><b>softpipe</b> - Software reference driver.
+ <li><b>svga</b> - Driver for VMware's SVGA virtual GPU.
+ <li><b>trace</b> - Driver for tracing Gallium calls.
+ <li>XXX more
+ </ul>
+ <li><b>auxiliary</b> - Gallium support code
+ <ul>
+ <li><b>draw</b> - Software vertex processing and primitive assembly
+ module. This includes vertex program execution, clipping, culling
+ and optional stages for drawing wide lines, stippled lines,
+ polygon stippling, two-sided lighting, etc.
+ Intended for use by drivers for hardware that does not have
+ vertex shaders.
+ Geometry shaders will also be implemented in this module.
+ <li><b>cso_cache</b> - Constant State Objects Cache. Used to filter out
+ redundant state changes between state trackers and drivers.
+ <li><b>gallivm</b> - LLVM module for Gallium. For LLVM-based
+ compilation, optimization and code generation for TGSI shaders.
+ Incomplete.
+ <li><b>pipebuffer</b> - utility module for managing buffers
+ <li><b>rbug</b> - Gallium remote debug utility
+ <li><b>rtasm</b> - run-time assembly/machine code generation.
+ Currently there's run-time code generation for x86/SSE, PowerPC
+ and Cell SPU.
+ <li><b>tgsi</b> - TG Shader Infrastructure. Code for encoding,
+ manipulating and interpretting GPU programs.
+ <li><b>translate</b> - module for translating vertex data from one format
+ to another.
+ <li><b>util</b> - assorted utilities for arithmetic, hashing, surface
+ creation, memory management, 2D blitting, simple rendering, etc.
+ </ul>
+ <li><b>state_trackers</b> -
+ <ul>
+ <li><b>dri</b> - Meta state tracker for DRI drivers
+ <li><b>egl</b> - Meta state tracker for EGL drivers
+ <li><b>es</b> - OpenGL ES 1.x and 2.x state trackers
+ <li><b>g3dvl</b> -
+ <li><b>glx</b> - Meta state tracker for GLX
+ <li><b>python</b> -
+ <li><b>vega</b> - OpenVG 1.x state tracker
+ <li><b>wgl</b> -
+ <li><b>xorg</b> - Meta state tracker for Xorg video drivers
+ </ul>
+ <li><b>winsys</b> -
+ <ul>
+ <li><b>drm</b> -
+ <li><b>g3dvl</b> -
+ <li><b>gdi</b> -
+ <li><b>xlib</b> -
+ </ul>
+ </ul>
+ </ul>
+ <ul>
+ <li><b>glu</b> - The OpenGL Utility library
+ <ul>
+ <li><b>sgi</b> - GLU from SGI
+ <li><b>mesa</b> - Mesa version of GLU (deprecated)
+ </ul>
+ <li><b>glut</b> - Mark Kilgard's OpenGL OpenGL Utility Toolkit library
+ <li><b>glx</b> - The GLX library code for building libGL. This is used for
+ direct rendering drivers. It will dynamically load one of the
+ xxx_dri.so drivers.
+ <li><b>glw</b> - Widgets for Xt/Motif.
+ <li><b>glew</b> - OpenGL Extension Wrangler library (used by demo programs)
+ </ul>
+<li><b>progs</b> - OpenGL test and demonstration programs
+<li><b>lib</b> - where the GL libraries are placed
+</ul>
+
+
+</BODY>
+</HTML>