summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMichal Krol <michal@vmware.com>2009-12-12 16:48:32 +0100
committerMichal Krol <michal@vmware.com>2009-12-12 16:48:32 +0100
commita3eb0f718e19653a2ad8e49396c904183be456f3 (patch)
tree0092574c469ea586a6cab8b8ebb7ac62b8221a2a /docs
parent491f384c3958067e6c4c994041f5d8d413b806bc (diff)
parent784cca9fa527de771754d76545970f78094b9adf (diff)
Merge branch 'master' into glsl-pp-rework-2
Conflicts: progs/perf/drawoverhead.c progs/perf/teximage.c progs/perf/vbo.c progs/perf/vertexrate.c src/mesa/shader/slang/library/slang_common_builtin_gc.h
Diffstat (limited to 'docs')
-rw-r--r--docs/README.WIN3223
-rw-r--r--docs/envvars.html1
-rw-r--r--docs/install.html4
-rw-r--r--docs/libGL.txt197
-rw-r--r--docs/news.html18
-rw-r--r--docs/relnotes-7.5.2.html17
-rw-r--r--docs/relnotes-7.6.1.html71
-rw-r--r--docs/relnotes-7.6.html19
-rw-r--r--docs/relnotes-7.7.html8
-rw-r--r--docs/relnotes-7.8.html53
-rw-r--r--docs/relnotes.html2
-rw-r--r--docs/shading.html9
12 files changed, 386 insertions, 36 deletions
diff --git a/docs/README.WIN32 b/docs/README.WIN32
index 97e1ffb7a7..204b8e6604 100644
--- a/docs/README.WIN32
+++ b/docs/README.WIN32
@@ -27,12 +27,6 @@ using the SDK with Visual Studio Express can be found at
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
-If you are stuck using VC6 or VC7, you may start with these project
-files, but you may need to modify them to reflect changes in the
-Mesa source code tree. If you sucessfully update the project files,
-please submit them to the author of this document so that they may
-be included in the next distribution.
-
The project files to build the core Mesa library, Windows Mesa
drivers, OSMesa, and GLU are in the mesa directory. The project files
to build GLUT and some demo programs are in the progs directory.
@@ -106,23 +100,6 @@ should build all the demos.
Build System Notes
----- ------ -----
-VC6 (not actively supported)
----
-
-Visual Studio 6 does not recognize files with the .cc extension as C++
-language files, without a lot of unnatural tweaking. So, the VC6
-build process uses custom build steps to compile these files in the
-GLU library.
-
-Two additional configurations are provided, Debug x86 and Release x86
-that activate the shader code compilation by defining SLANG_86. It is
-unknown if and how this works.
-
-VC7 (not actively supported)
----
-
-The above-mentioned .cc problem does not exist in this version.
-
VC8
---
diff --git a/docs/envvars.html b/docs/envvars.html
index 6d7a321da9..b2c0e01ee3 100644
--- a/docs/envvars.html
+++ b/docs/envvars.html
@@ -28,6 +28,7 @@ Setting this variable automatically sets the MESA_TEX_PROG variable as well.
<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
and disable the GL_EXT_bar extension.
+<li>MESA_GLSL - <a href="shading.html#envvars">shading language options</a>
</ul>
<p>
diff --git a/docs/install.html b/docs/install.html
index 953d2094d5..8c24cee7a3 100644
--- a/docs/install.html
+++ b/docs/install.html
@@ -35,14 +35,14 @@
<h3>1.1 Prerequisites for DRI and hardware acceleration</h3>
<p>
-The following are required for DRI-based hardware acceleration with Mesa 7.3:
+The following are required for DRI-based hardware acceleration with Mesa:
</p>
<ul>
<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">dri2proto</a> version 1.99.3 or later
<li>Linux 2.6.28
<li><a href="http://dri.freedesktop.org/libdrm/" target="_parent">libDRM</a>
-version 2.4.3 or later
+version 2.4.15 or later
<li>Xorg server version 1.5 or later
</ul>
</p>
diff --git a/docs/libGL.txt b/docs/libGL.txt
new file mode 100644
index 0000000000..cb98840437
--- /dev/null
+++ b/docs/libGL.txt
@@ -0,0 +1,197 @@
+
+
+
+Introduction
+------------
+
+This document describes the implementation of the XFree86 4.0 libGL.so
+library defined by the Linux/OpenGL Base specification found at
+http://reality.sgi.com/opengl/linux/linuxbase.html.
+
+The documentation is divided into two sections:
+ User's Guide
+ Driver Developer's Guide
+
+Author: Brian Paul (brian@precisioninsight.com)
+Date: February 2000
+
+
+
+User's Guide
+------------
+
+Using libGL.so
+
+The libGL.so library defines the gl- and glX-prefixed functions needed to
+run OpenGL programs. OpenGL client applications should link with the
+-lGL option to use it.
+
+libGL.so serves two primary functions: GLX protocol generation for indirect
+rendering and loading/management of hardware drivers for direct rendering.
+
+When libGL.so initializes itself it uses the DRI to determine the
+appropriate hardware driver for each screen on the local X display.
+The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/
+directory. Drivers are named with the convention <name>_dri.so where
+<name> is a driver such as "tdfx", "i810", "gamma", etc.
+
+The LIBGL_DRIVERS_DIR environment variable may be used to specify a
+different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/.
+This environment variable is ignored in setuid programs for security
+reasons.
+
+When libGL.so is unable to locate appropriate hardware drivers it will
+fall back to using indirect GLX rendering.
+
+To aid in solving problems, libGL.so will print diagnostic messages to
+stderr if the LIBGL_DEBUG environment variable is defined.
+
+libGL.so is thread safe. The overhead of thread safety for common,
+single-thread clients is negligible. However, the overhead of thread
+safety for multi-threaded clients is significant. Each GL API call
+requires two calls to pthread_get_specific() which can noticably
+impact performance. Warning: libGL.so is thread safe but individual
+DRI drivers may not be. Please consult the documentation for a driver
+to learn if it is thread safe.
+
+
+
+Indirect Rendering
+
+You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
+environment variable. Hardware acceleration will not be used.
+
+
+
+libGL.so Extensibility
+
+libGL.so is designed to be extended without upgrading. That is,
+drivers may install new OpenGL extension functions into libGL.so
+without requiring libGL.so to be replaced. Clients of libGL.so should
+use the glXGetProcAddressEXT() function to obtain the address of
+functions by name. For more details of GLX_ARB_get_proc_address see
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec
+
+libGL.so is also designed with flexibility such that it may be used
+with many generations of hardware drivers to come.
+
+
+
+
+Driver Developer's Guide
+------------------------
+
+This section describes the requirements to make an XFree86 4.0
+libGL.so-compatible hardware driver. It is not intended for end
+users of libGL.so.
+
+
+XFree86 source files
+
+libGL.so is built inside XFree86 with sources found in xc/lib/GL/.
+Specifically, libGL.so is built from:
+
+ xc/lib/GL/glx/*.c
+ xc/lib/dri/XF86dri.c
+ xc/lib/dri/dri_glx.c
+ xc/lib/GL/mesa/src/glapi.c
+ xc/lib/GL/mesa/src/glapitemp.h
+ xc/lib/GL/mesa/src/glapitable.h
+ xc/lib/GL/mesa/src/glapioffsets.h
+ xc/lib/GL/mesa/src/glapinoop.c
+ xc/lib/GL/mesa/src/glheader.h
+ xc/lib/GL/mesa/src/glthread.c
+ xc/lib/GL/mesa/src/glthread.h
+ xc/lib/GL/mesa/src/X86/glapi_x86.S
+ xc/lib/GL/mesa/src/X86/assyntax.h
+
+Understand that the mesa/src/gl*.[ch] files are not tied to Mesa. They
+have no dependencies on the rest of Mesa and are designed to be reusable
+in a number of projects.
+
+The glapi_x86.X and assyntax.h files implement x86-optimized dispatch
+of GL functions. They are not required; C-based dispatch can be used
+instead, with a slight performance penalty.
+
+
+
+Driver loading and binding
+
+When libGL.so initializes itself (via the __glXInitialize function) a
+call is made to driCreateDisplay(). This function uses DRI facilities
+to determine the driver file appropriate for each screen on the local
+display. Each screen's driver is then opened with dlopen() and asked
+for its __driCreateScreen() function. The pointers to the __driCreateScreen()
+functions are kept in an array, indexed by screen number, in the
+__DRIdisplayRec struct.
+
+When a driver's __driCreateScreen() function is called, it must initialize
+a __DRIscreenRec struct. This struct acts as the root of a tree of
+function pointers which are called to create and destroy contexts and
+drawables and perform all the operations needed by the GLX interface.
+See the xc/lib/GL/glx/glxclient.h file for details.
+
+
+
+Dynamic Extension Function Registration
+
+In order to provide forward compatibility with future drivers, libGL.so
+allows drivers to register new OpenGL extension functions which weren't
+known when libGL.so was built.
+
+The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called
+as soon as libGL.so is loaded. This is done with gcc's constructor
+attribute. This mechanism will likely have to be changed for other compilers.
+
+register_extensions() loops over all local displays and screens, determines
+the DRI driver for each, and calls the driver's __driRegisterExtensions()
+function, if present.
+
+The __driRegisterExtensions() function can add new entrypoints to libGL
+by calling:
+
+ GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset)
+
+The parameters are the name of the function (such as "glFoobarEXT") and the
+offset of the dispatch slot in the API dispatch table. The return value
+indicates success (GL_TRUE) or failure (GL_FALSE).
+
+_glapi_add_entrypoint() will synthesize entrypoint code in assembly
+language. Assembly languages is required since parameter passing
+can't be handled correctly using a C-based solution.
+
+The address of the new entrypoint is obtained by calling the
+glXGetProcAddressARB() function.
+
+The dispatch offset number MUST be a number allocated by SGI in the same
+manner in which new GL_* constants are allocated. Using an arbitrary
+offset number will result in many problems.
+
+
+
+Dispatch Management
+
+When a GL context is made current, the driver must install its dispatch
+table as the current dispatch table. This is done by calling
+
+ void _glapi_set_dispatch(struct _glapi_table *dispatch);
+
+This will install the named dispatch table for the calling thread.
+The current dispatch table for a thread can be obtained by calling
+
+ struct _glapi_table *_glapi_get_dispatch(void);
+
+For higher performance in the common single-thread case, the global
+variable _glapi_Dispatch will point to the current dispatch table.
+This variable will be NULL when in multi-thread mode.
+
+
+
+Context Management
+
+libGL.so uses the XFree86 xthreads package to manage a thread-specific
+current context pointer. See __glXGet/SetCurrentContext() in glext.c
+
+Drivers may use the _glapi_set/get_context() functions to maintain
+a private thread-specific context pointer.
+
diff --git a/docs/news.html b/docs/news.html
index 07ad42ed49..2abec2e635 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -10,6 +10,24 @@
<H1>News</H1>
+<h2>November XX, 2009</h2>
+<p>
+<a href="relnotes-7.6.1.html">Mesa 7.6.1</a> is released. This is a bug-fix
+release fixing issues found in the 7.6 release.
+</p>
+
+
+<h2>September 28, 2009</h2>
+<p>
+<a href="relnotes-7.6.html">Mesa 7.6</a> is released. This is a new feature
+release. Those especially concerned about stability may want to wait for the
+follow-on 7.6.1 bug-fix release.
+</p>
+<p>
+<a href="relnotes-7.5.2.html">Mesa 7.5.2</a> is also released.
+This is a stable release fixing bugs since the 7.5.1 release.
+</p>
+
<h2>September 3, 2009</h2>
<p>
diff --git a/docs/relnotes-7.5.2.html b/docs/relnotes-7.5.2.html
index b638c0517d..5c395d97b4 100644
--- a/docs/relnotes-7.5.2.html
+++ b/docs/relnotes-7.5.2.html
@@ -8,7 +8,7 @@
<body bgcolor="#eeeeee">
-<H1>Mesa 7.5.2 Release Notes, (date tbd)</H1>
+<H1>Mesa 7.5.2 Release Notes, 28 September 2009</H1>
<p>
Mesa 7.5.2 is a bug-fix release fixing issues found since the 7.5.1 release.
@@ -31,7 +31,15 @@ for DRI hardware acceleration.
<h2>MD5 checksums</h2>
<pre>
-tbd
+43a90191dd9f76cd65dcc1ac91f3be70 MesaLib-7.5.2.tar.gz
+94e47a499f1226803869c2e37a6a8e3a MesaLib-7.5.2.tar.bz2
+1ecb822b567ad67a0617361d45206b67 MesaLib-7.5.2.zip
+2718fdce7e075911d6147beb8f27104b MesaDemos-7.5.2.tar.gz
+4e0f5ccd58afe21eddcd94327d926e86 MesaDemos-7.5.2.tar.bz2
+f621f8c223b278d7c8e49a012d56ca25 MesaDemos-7.5.2.zip
+83c16c1d6bcfcc3f97aab5d2fe430b4c MesaGLUT-7.5.2.tar.gz
+e5d03bedae369ea3705783573bb33813 MesaGLUT-7.5.2.tar.bz2
+e82ba28e00d653e6f437d32be8ca8481 MesaGLUT-7.5.2.zip
</pre>
@@ -49,8 +57,11 @@ tbd
(such as bug 23946)
<li>glUseProgram() is now compiled into display lists (bug 23746).
<li>glUniform functions are now compiled into display lists
+<li>Auto mipmap generation didn't work reliably with Gallium.
+<li>Fixed random number usage in GLX code.
+<li>Fixed invalid GL_OUT_OF_MEMORY error sometimes raised by glTexSubImage2D
+ when using Gallium.
</ul>
-
</body>
</html>
diff --git a/docs/relnotes-7.6.1.html b/docs/relnotes-7.6.1.html
new file mode 100644
index 0000000000..7160168d98
--- /dev/null
+++ b/docs/relnotes-7.6.1.html
@@ -0,0 +1,71 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 7.6.1 Release Notes, (date tbd)</H1>
+
+<p>
+Mesa 7.6.1 is a bug-fix release fixing issues since version 7.6.
+</p>
+<p>
+Mesa 7.6.1 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>Upgraded GL/glext.h to version 56, GL/glxext.h to version 25,
+ GL/wglext.h to version 17
+<li>New 3D driver, r600, for Radeon R6xx, R7xx hardware
+</ul>
+
+
+<h2>Bug fixes</h2>
+<ul>
+<li>Fixed crash caused by glXCopyContext() and glXDestroyContext(), bug 24217
+<li>glXQueryContext(GLX_RENDER_TYPE) returned wrong values (bug 24211)
+<li>GLSL sqrt(0) returned unpredictable results
+<li>Fixed default texture binding bug when a bound texture was deleted.
+<li>r300: Work around an issue with very large fragment programs on R500.
+<li>Fake glXQueryDrawable() didn't return good values (bug 24320)
+<li>Fixed AUX buffer breakage (bug 24426).
+<li>Fixed locale-dependent float parsing bug in GLSL compiler (bug 24531)
+<li>Fixed Gallium Cell driver compilation failure.
+<li>Fixed glGetTexLevelParameter(GL_TEXTURE_INTERNAL_FORMAT) query so that
+ it returns the actual compressed format chosen.
+<li>Fixed glBitmap bugs in Intel drivers.
+<li>Fixed a number of Microsoft Visual Studio compilation problems.
+<li>Fixed clipping / provoking vertex bugs in i965 driver.
+<li>Assorted build fixes for AIX.
+<li>Endianness fixes for the DRI swrast driver (bug 22767).</li>
+<li>Point sprite fixes for i915/945 driver.
+<li>Fixed assorted memory leaks (usually on error paths)
+<li>Fixed some GLSL compiler bugs (ex: 25579)
+</ul>
+
+<h2>Changes</h2>
+<ul>
+<li>Removed old VC6, VC7 project files for Windows
+</ul>
+
+
+</body>
+</html>
diff --git a/docs/relnotes-7.6.html b/docs/relnotes-7.6.html
index 9cd3417e7e..410b6efdd4 100644
--- a/docs/relnotes-7.6.html
+++ b/docs/relnotes-7.6.html
@@ -8,7 +8,7 @@
<body bgcolor="#eeeeee">
-<H1>Mesa 7.6 Release Notes / date TBD</H1>
+<H1>Mesa 7.6 Release Notes, 28 September 2009</H1>
<p>
Mesa 7.6 is a new development release.
@@ -28,7 +28,15 @@ for DRI hardware acceleration.
<h2>MD5 checksums</h2>
<pre>
-tbd
+5ffa7d7abf8973f57a1bc4f813e6dade MesaLib-7.6.tar.gz
+8c75f90cd0303cfac9e4b6d54f6759ca MesaLib-7.6.tar.bz2
+27fcfd69708599c978cb34ba5cd363e1 MesaLib-7.6.zip
+e7befb3ae604f591806194a4da445628 MesaDemos-7.6.tar.gz
+0ede7adf217951acd90dbe4551210c07 MesaDemos-7.6.tar.bz2
+ed9298409cf6613bc0964525ca4afc8a MesaDemos-7.6.zip
+666955668e44ff14acf7d15dc78407d3 MesaGLUT-7.6.tar.gz
+b8b59706f827d18d1b784a0ff98b4dc2 MesaGLUT-7.6.tar.bz2
+c49c19c2bbef4f3b7f1389974dff25f4 MesaGLUT-7.6.zip
</pre>
@@ -50,6 +58,8 @@ This was written by Zack Rusin at Tungsten Graphics.
<li>Rewritten radeon/r200/r300 driver using a buffer manager
<li>radeon/r200/r300 GL_EXT_framebuffer_object support when used with
kernel memory manager
+<li>radeon/r200/r300 support for GL_ARB_occlusion_query</li>
+<li>r300 driver supports OpenGL 1.5</li>
<li>r300 driver support for GL_EXT_vertex_array_bgra, GL_EXT_texture_sRGB
<li>i915/945 driver support for GL_ARB_point_sprite, GL_EXT_stencil_two_side
and GL_ATI_separate_stencil extensions
@@ -70,10 +80,5 @@ This was written by Zack Rusin at Tungsten Graphics.
buffers (GLSL uniforms)
</ul>
-
-<h2>Changes</h2>
-<ul>
-</ul>
-
</body>
</html>
diff --git a/docs/relnotes-7.7.html b/docs/relnotes-7.7.html
index ca6ec55b60..8c8f763b6f 100644
--- a/docs/relnotes-7.7.html
+++ b/docs/relnotes-7.7.html
@@ -34,20 +34,28 @@ tbd
<h2>New features</h2>
<ul>
+<li>VMware "SVGA" Gallium driver. This is a Gallium3D driver which targets the
+ VMware virtual graphics device. It allows Linux OpenGL guest applications
+ to utilize the 3D graphics hardware of the host operating system.
<li>GL_ARB_draw_elements_base_vertex (supported in Intel i965 and software drivers)</li>
<li>GL_ARB_depth_clamp (supported in Intel i965 DRI and software drivers)</li>
<li>GL_NV_depth_clamp (supported in Intel i965 DRI and software drivers)</li>
<li>GL_ARB_provoking_vertex (same as GL_EXT_provoking_vertex)</li>
+<li>Wavefront .obj file loader/viewer demo (progs/demos/objviewer)
</ul>
<h2>Bug fixes</h2>
<ul>
+<li>Many assorted i965 driver fixes.
+<li>Many r300-gallium driver fixes; this driver is now considered unstable-quality instead of experimental-quality.
</ul>
<h2>Changes</h2>
<ul>
+<li>New Mesa texture/surface format infrastructure
+<li>Removed some unused Mesa device driver hooks
</ul>
</body>
diff --git a/docs/relnotes-7.8.html b/docs/relnotes-7.8.html
new file mode 100644
index 0000000000..dc003566c7
--- /dev/null
+++ b/docs/relnotes-7.8.html
@@ -0,0 +1,53 @@
+<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>TBD
+</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 7a87f58a82..d0d9b6e5b9 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -13,7 +13,9 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<UL>
+<LI><A HREF="relnotes-7.8.html">7.8 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>
<LI><A HREF="relnotes-7.6.html">7.6 release notes</A>
<LI><A HREF="relnotes-7.5.2.html">7.5.2 release notes</A>
<LI><A HREF="relnotes-7.5.1.html">7.5.1 release notes</A>
diff --git a/docs/shading.html b/docs/shading.html
index 77c86be3aa..bd02335a80 100644
--- a/docs/shading.html
+++ b/docs/shading.html
@@ -39,7 +39,8 @@ Contents
<p>
The <b>MESA_GLSL</b> environment variable can be set to a comma-separated
-list of keywords to control some aspects of the GLSL compiler:
+list of keywords to control some aspects of the GLSL compiler and shader
+execution. These are generally used for debugging.
</p>
<ul>
<li>dump - print GLSL shader code to stdout at link time
@@ -49,6 +50,12 @@ list of keywords to control some aspects of the GLSL compiler:
<li>nopt - disable compiler optimizations
<li>opt - force compiler optimizations
<li>uniform - print message to stdout when glUniform is called
+<li>nopvert - force vertex shaders to be a simple shader that just transforms
+ the vertex position with ftransform() and passes through the color and
+ texcoord[0] attributes.
+<li>nopfrag - force fragment shader to be a simple shader that passes
+ through the color attribute.
+<li>useprog - log glUseProgram calls to stderr
</ul>
<p>
Example: export MESA_GLSL=dump,nopt