diff options
Diffstat (limited to 'docs')
28 files changed, 1282 insertions, 243 deletions
diff --git a/docs/MESA_packed_depth_stencil.spec b/docs/OLD/MESA_packed_depth_stencil.spec index 112b730ecc..112b730ecc 100644 --- a/docs/MESA_packed_depth_stencil.spec +++ b/docs/OLD/MESA_packed_depth_stencil.spec diff --git a/docs/MESA_program_debug.spec b/docs/OLD/MESA_program_debug.spec index 7694fdcc42..7694fdcc42 100644 --- a/docs/MESA_program_debug.spec +++ b/docs/OLD/MESA_program_debug.spec diff --git a/docs/MESA_sprite_point.spec b/docs/OLD/MESA_sprite_point.spec index b50d78e9e7..b50d78e9e7 100644 --- a/docs/MESA_sprite_point.spec +++ b/docs/OLD/MESA_sprite_point.spec diff --git a/docs/MESA_trace.spec b/docs/OLD/MESA_trace.spec index dc4166e6b6..dc4166e6b6 100644 --- a/docs/MESA_trace.spec +++ b/docs/OLD/MESA_trace.spec diff --git a/docs/README.MINGW32 b/docs/README.MINGW32 index 138dd43eac..9477b2bd31 100644 --- a/docs/README.MINGW32 +++ b/docs/README.MINGW32 @@ -91,9 +91,11 @@ Running the Build: -*******************This section is added by Heromyth***************************** -Updated on 2007-7-21, by Heromyth <zxpmyth@yahoo.com.cn> +******This section is added by Heromyth <zxpmyth@yahoo.com.cn>************* +==================== +Updated on 2007-7-21 +==================== Notice: 1) The generated DLLs are *not* compatible with the ones built @@ -115,7 +117,7 @@ For example, run: , and delete all the lines where all the wgl*() functions are. Because they would be conflicted with the ones in <Mesa3D-root>\include\GL\mesa_wgl.h. -======= Conflicted Functions List ====== +>>>>>>>>>> Conflicted Functions List >>>>>>>>>> WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT); WINGDIAPI HGLRC WINAPI wglCreateContext(HDC); WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC,int); @@ -134,6 +136,18 @@ WINGDIAPI BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD); WINGDIAPI BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD); WINGDIAPI BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT); WINGDIAPI BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT); -=================== +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +==================== +Updated on 2007-7-22 +==================== + I havn't thought that I would find a better way to solve my problems so soon. +I changed the method in which the import-libs and DLLs are made. After this update, +the DLLs of MESA are more optimized and more compatible. + It seems that there is no need to keep the building way of 'NO-STDCALL'.The +way of USING_STDCALL is so nice! The file <Mesa3D-root>\configs\config.mgw is +also not needed, and can be deleted safely! + + *********************************************************************************
\ No newline at end of file diff --git a/docs/autoconf.html b/docs/autoconf.html new file mode 100644 index 0000000000..936ddcffeb --- /dev/null +++ b/docs/autoconf.html @@ -0,0 +1,289 @@ +<html> + +<title>Compilation and Installation using Autoconf</title> + +<link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<body> + + +<h1>Compilation and Installation using Autoconf</h1> + +<ol> +<li><a href="#basic">Basic Usage</a></li> +<li><a href="#driver">Driver Options</a></li> + <ul> + <li><a href="#xlib">Xlib Driver Options</a></li> + <li><a href="#dri">DRI Driver Options</a></li> + <li><a href="#osmesa">OSMesa Driver Options</a></li> + </ul> +<li><a href="#library">Library Options</a></li> + <ul> + <li><a href="#glu">GLU</a></li> + <li><a href="#glw">GLw</a></li> + <li><a href="#glut">GLUT</a></li> + </ul> +<li><a href="#demos">Demo Program Options</a></li> +</ol> + + +<a name="basic"> +<h2>1. Basic Usage</h2> + +<p> +The autoconf generated configure script can be used to guess your +platform and change various options for building Mesa. To use the +configure script, type: +</p> + +<pre> + ./configure +</pre> + +<p> +To see a short description of all the options, type <code>./configure +--help</code>. If you are using a development snapshot and the configure +script does not exist, type <code>./autogen.sh</code> to generate it +first. If you know the options you want to pass to +<code>configure</code>, you can pass them to <code>autogen.sh</code>. It +will run <code>configure</code> with these options after it is +generated. Once you have run <code>configure</code> and set the options +to your preference, type: +</p> + +<pre> + make +</pre> + +<p> +This will produce libGL.so and several other libraries depending on the +options you have chosen. Later, if you want to rebuild for a different +configuration run <code>make realclean</code> before rebuilding. +</p> + +<p> +Some of the generic autoconf options are used with Mesa: + +<ul> +<li><code>--prefix=PREFIX</code> - This is the root directory where +files will be installed by <code>make install</code>. The default is +<code>/usr/local</code>. +</li> +<li><code>--exec-prefix=EPREFIX</code> - This is the root directory +where architecture-dependent files will be installed. In Mesa, this is +only used to derive the directory for the libraries. The default is +<code>${prefix}</code>. +</li> +<li><code>--libdir=LIBDIR</code> - This option specifies the directory +where the GL libraries will be installed. The default is +<code>${exec_prefix}/lib</code>. It also serves as the name of the +library staging area in the source tree. For instance, if the option +<code>--libdir=/usr/local/lib64</code> is used, the libraries will be +created in a <code>lib64</code> directory at the top of the Mesa source +tree. +</li> +<li><code>--enable-static, --disable-shared</code> - By default, Mesa +will build shared libraries. Either of these options will force static +libraries to be built. It is not currently possible to build static and +shared libraries in a single pass. +</li> +<li><code>CC, CFLAGS, CXX, CXXFLAGS</code> - These environment variables +control the C and C++ compilers used during the build. By default, +<code>gcc</code> and <code>g++</code> are used with the options +<code>"-g -O2"</code>. +</li> +<li><code>LDFLAGS</code> - An environment variable specifying flags to +pass when linking programs. These are normally empty, but can be used +to direct the linker to use libraries in nonstandard directories. For +example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>. +</li> +<li><code>PKG_CONFIG_PATH</code> - When available, the +<code>pkg-config</code> utility is used to search for external libraries +on the system. This environment variable is used to control the search +path for <code>pkg-config</code>. For instance, setting +<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for +package metadata in <code>/usr/X11R6</code> before the standard +directories. +</li> +</ul> +</p> + +<p> +There are also a few general options for altering the Mesa build: +<ul> +<li><code>--with-x</code> - When the X11 development libraries are +needed, the <code>pkg-config</code> utility <a href="#pkg-config">will +be used</a> for locating them. If they cannot be found through +<code>pkg-config</code> a fallback routing using <code>imake</code> will +be used. In this case, the <code>--with-x</code>, +<code>--x-includes</code> and <code>--x-libraries</code> options can +control the use of X for Mesa. +</li> +<li><code>--enable-gl-osmesa</code> - The <a href="osmesa.html">OSMesa +library</a> can be built on top of libGL for drivers that provide it. +This option controls whether to build libOSMesa. By default, this is +enabled for the Xlib driver and disabled otherwise. Note that this +option is different than using OSMesa as the driver. +</li> +<li><code>--enable-debug</code> - This option will enable compiler +options and macros to aid in debugging the Mesa libraries. +</li> +<li><code>--disable-asm</code> - There are assembly routines +available for a few architectures. These will be used by default if +one of these architectures is detected. This option ensures that +assembly will not be used. +</li> +<li><code>--enable-32-bit, --enable-64-bit</code> - By default, the +build will compile code as directed by the environment variables +<code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is +<code>gcc</code>, these options offer a helper to add the compiler flags +to force 32- or 64-bit code generation as used on the x86 and x86_64 +architectures. +</li> +</ul> +</p> + + +<a name="driver"> +<h2>2. Driver Options</h2> + +<p> +There are several different driver modes that Mesa can use. These are +described in more detail in the <a href="install.html">basic +installation instructions</a>. The Mesa driver is controlled through the +configure option --with-driver. There are currently three supported +options in the configure script. +</p> + +<ul> + +<a name="xlib"> +<li><b><em>Xlib</em></b> - This is the default mode for building Mesa. +It uses Xlib as a software renderer to do all rendering. It corresponds +to the option <code>--with-driver=xlib</code>. The libX11 and libXext +libraries, as well as the X11 development headers, will be need to +support the Xlib driver. +</li> + +<a name="dri"> +<li><b><em>DRI</em></b> - This mode uses the DRI hardware drivers for +accelerated OpenGL rendering. Enable the DRI drivers with the option +<code>--with-driver=dri</code>. See the <a href="install.html">basic +installation instructions</a> for details on prerequisites for the DRI +drivers. +</li> + +<!-- DRI specific options --> +<p> +<ul> +<li><code>--with-dri-driverdir=DIR</code> - This option specifies the +location the DRI drivers will be installed to and the location libGL +will search for DRI drivers. The default is <code>${libdir}/dri</code>. +</li> +<li><code>--with-dri-drivers=DRIVER,DRIVER,...</code> - This option +allows a specific set of DRI drivers to be built. For example, +<code>--with-dri-drivers="swrast,i965,radeon,nouveau"</code>. By +default, the drivers will be chosen depending on the target platform. +See the directory <code>src/mesa/drivers/dri</code> in the source tree +for available drivers. Beware that the swrast DRI driver is used by both +libGL and the X.Org xserver GLX module to do software rendering, so you +may run into problems if it is not available.</li> +<!-- This explanation might be totally bogus. Kristian? --> +<li><code>--disable-driglx-direct</code> - Disable direct rendering in +GLX. Normally, direct hardware rendering through the DRI drivers and +indirect software rendering are enabled in GLX. This option disables +direct rendering entirely. It can be useful on architectures where +kernel DRM modules are not available. +</li> +<li><code>--enable-glx-tls</code> - Enable Thread Local Storage (TLS) in +GLX. +</li> +<li><code>--with-expat=DIR</code> - The DRI-enabled libGL uses expat to +parse the DRI configuration files in <code>/etc/drirc</code> and +<code>~/.drirc</code>. This option allows a specific expat installation +to be used. For example, <code>--with-expat=/usr/local</code> will +search for expat headers and libraries in <code>/usr/local/include</code> +and <code>/usr/local/lib</code>, respectively. +</li> +</ul> +</p> + +<a name="osmesa"> +<li><b><em>OSMesa</em></b> - No libGL is built in this +mode. Instead, the driver code is built into the Off-Screen Mesa +(OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a> +page for more details. +</li> + +<!-- OSMesa specific options --> +<p> +<ul> +<li><code>--with-osmesa-bits=BITS</code> - This option allows the size +of the color channel in bits to be specified. By default, an 8-bit +channel will be used, and the driver will be named libOSMesa. Other +options are 16- and 32-bit color channels, which will add the bit size +to the library name. For example, <code>--with-osmesa-bits=16</code> +will create the libOSMesa16 library with a 16-bit color channel. +</li> +</ul> +</p> + +</ul> + + +<a name="library"> +<h2>3. Library Options</h2> + +<p> +The configure script provides more fine grained control over the GL +libraries that will be built. More details on the specific GL libraries +can be found in the <a href="install.html">basic installation +instructions</a>. + +<ul> +<a name="glu"> +<li><b><em>GLU</em></b> - The libGLU library will be built by default +on all drivers. This can be disable with the option +<code>--disable-glu</code>. +</li> + +<a name="glw"> +<li><b><em>GLw</em></b> - The libGLw library will be built by default +if libGLU has been enabled. This can be disable with the option +<code>--disable-glw</code>. +</li> + +<a name="glut"> +<li><b><em>GLUT</em></b> - The libglut library will be built by default +if libGLU has been enabled and the glut source code from the MesaGLUT +tarball is available. This can be disable with the option +<code>--disable-glut</code>. +</li> +</ul> +</p> + + +<a name="demos"> +<h2>4. Demo Program Options</h2> + +<p> +There are many demonstration programs in the MesaDemos tarball. If the +programs are available when <code>./configure</code> is run, a subset of +the programs will be built depending on the driver and library options +chosen. See the directory <code>progs</code> for the full set of demos. + +<ul> +<li><code>--with-demos=DEMOS,DEMOS,...</code> - This option allows a +specific set of demo programs to be built. For example, +<code>--with-demos="xdemos,slang"</code>. Beware that if this option is +used, it will not be ensured that the necessary GL libraries will be +available. +</li> +<li><code>--without-demos</code> - This completely disables building the +demo programs. It is equivalent to <code>--with-demos=no</code>. +</li> +</ul> +</p> + +</body> +</html> diff --git a/docs/bugs.html b/docs/bugs.html index d255f4292c..4397339e96 100644 --- a/docs/bugs.html +++ b/docs/bugs.html @@ -9,9 +9,9 @@ <H1>Bug Database</H1> <p> -The Mesa bug database is now hosted on -<a href="http://freedesktop.org" target="_parent">freedesktop.org</a> -instead of SourceForge. +The Mesa bug database is hosted on +<a href="http://freedesktop.org" target="_parent">freedesktop.org</a>. +The old bug database on SourceForge is no longer used. </p> <p> @@ -26,16 +26,20 @@ Please follow these bug reporting guidelines: </p> <ul> -<li>Make sure you're using the most recent version of Mesa -<li>Make sure your bug isn't already reported -<li>Include as much information as possible in the report +<li>Check if a new version of Mesa is available which might have fixed +the problem. +<li>Check if your bug is already reported in the database. +<li>Monitor your bug report for requests for additional information, etc. +<li>If you're reporting a crash, try to use your debugger (gdb) to get a stack +trace. Also, recompile Mesa in debug mode to get more detailed information. +<li>Describe in detail how to reproduce the bug, especially with games +and applications that the Mesa developers might not be familiar with. <li>Provide a simple GLUT-based test program if possible -<li>Check back for follow-ups to the report </ul> <p> -Bug reports will automatically be forwarded to the Mesa developer's mailing -list. +Bug reports will automatically be forwarded by bugzilla to the Mesa +developer's mailing list. </p> <p> diff --git a/docs/cell.html b/docs/cell.html new file mode 100644 index 0000000000..7fbbba7c7e --- /dev/null +++ b/docs/cell.html @@ -0,0 +1,149 @@ +<HTML> + +<TITLE>Cell Driver</TITLE> + +<link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<H1>Mesa/Gallium Cell Driver</H1> + +<p> +The Mesa +<a href="http://en.wikipedia.org/wiki/Cell_%28microprocessor%29" target="_parent">Cell</a> +driver is part of the +<a href="http://www.tungstengraphics.com/wiki/index.php/Gallium3D" target="_parent">Gallium3D</a> +architecture. +</p> + +<p> +<a href="http://www.tungstengraphics.com/" target="_parent">Tungsten Graphics</a> +is leading the project. +Two phases are planned. +First, to implement the framework for parallel rasterization using the Cell +SPEs, including texture mapping. +Second, to implement a full-featured OpenGL driver with support for GLSL, etc. +The second phase is now underway. +</p> + + +<H2>Source Code</H2> + +<p> +The latest Cell driver source code is on the <code>gallium-0.2</code> branch +of the Mesa git repository. +After you've cloned the repository, check out the branch with: +</p> +<pre> + git-checkout -b gallium-0.2 origin/gallium-0.2 +</pre> +<p> +To build the driver you'll need the IBM Cell SDK (version 2.1 or 3.0). +To use the driver you'll need a Cell system, such as a PS3 running Linux, +or the Cell Simulator (untested, though). +</p> + +<p> +If using Cell SDK 2.1, see the configs/linux-cell file for some +special changes. +</p> + +<p> +To compile the code, run <code>make linux-cell</code>. +To build in debug mode, run <code>make linux-cell-debug</code>. +</p> + +<p> +To use the library, make sure <code>LD_LIBRARY_PATH</code> points the Mesa/lib/ +directory that contains <code>libGL.so</code>. +</p> + +<p> +Verify that the Cell driver is being used by running <code>glxinfo</code> +and looking for: +<pre> + OpenGL renderer string: Gallium 0.2, Cell on Xlib +</pre> + + +<H2>Driver Implementation Summary</H2> + +<p> +Rasterization is parallelized across the SPUs in a tiled-based manner. +Batches of transformed triangles are sent to the SPUs (actually, pulled by from +main memory by the SPUs). +Each SPU loops over a set of 32x32-pixel screen tiles, rendering the triangles +into each tile. +Because of the limited SPU memory, framebuffer tiles are paged in/out of +SPU local store as needed. +Similarly, textures are tiled and brought into local store as needed. +</p> + + +<H2>Status</H2> + +<p> +As of October 2008, the driver runs quite a few OpenGL demos. +Features that work include: +</p> +<ul> +<li>Point/line/triangle rendering, glDrawPixels +<li>2D, NPOT and cube texture maps with nearest/linear/mipmap filtering +<li>Dynamic SPU code generation for fragment shaders, but not complete +<li>Dynamic SPU code generation for fragment ops (blend, Z-test, etc), but not complete +<li>Dynamic PPU/PPC code generation for vertex shaders, but not complete +</ul> +<p> +Performance has recently improved with the addition of PPC code generation +for vertex shaders, but the code quality isn't too great yet. +</p> +<p> +Another bottleneck is SwapBuffers. It may be the limiting factor for +many simple GL tests. +</p> + + + +<H2>Debug Options</H2> + +<p> +The CELL_DEBUG env var can be set to a comma-separated list of one or +more of the following debug options: +</p> +<ul> +<li><b>checker</b> - use a different background clear color for each SPU. + This lets you see which SPU is rendering which screen tiles. +<li><b>sync</b> - wait/synchronize after each DMA transfer +<li><b>asm</b> - print generated SPU assembly code to stdout +<li><b>fragops</b> - emit fragment ops debug messages +<li><b>fragopfallback</b> - don't use codegen for fragment ops +<li><b>cmd</b> - print SPU commands as their received +<li><b>cache</b> - print texture cache statistics when program exits +</ul> +<p> +Note that some of these options may only work for linux-cell-debug builds. +</p> + +<p> +If the GALLIUM_NOPPC env var is set, PPC code generation will not be used +and vertex shaders will be run with the TGSI interpreter. +</p> +<p> +If the GALLIUM_NOCELL env var is set, the softpipe driver will be used +intead of the Cell driver. +This is useful for comparison/validation. +</p> + + + +<H2>Contributing</H2> + +<p> +If you're interested in contributing to the effort, familiarize yourself +with the code, join the <a href="lists.html">mesa3d-dev mailing list</a>, +and describe what you'd like to do. +</p> + + +</BODY> +</HTML> diff --git a/docs/contents.html b/docs/contents.html index a21341a589..257b13f68a 100644 --- a/docs/contents.html +++ b/docs/contents.html @@ -48,6 +48,7 @@ a:visited { <li><a href="lists.html" target="MainFrame">Mailing Lists</a> <li><a href="bugs.html" target="MainFrame">Bug Database</a> <li><a href="webmaster.html" target="MainFrame">Webmaster</a> +<li><a href="http://dri.freedesktop.org/" target="MainFrame">Wiki</a> </ul> <b>User Topics</b> @@ -75,6 +76,7 @@ a:visited { <li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a> <li><a href="glfbdev-driver.html" target="MainFrame">glFBDev Driver</a> <LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A> +<li><a href="cell.html" target="MainFrame">Cell Driver</A> </ul> <b>Links</b> diff --git a/docs/devinfo.html b/docs/devinfo.html index cce14d73a3..3cebf5f36d 100644 --- a/docs/devinfo.html +++ b/docs/devinfo.html @@ -135,12 +135,12 @@ Update the docs/VERSIONS file too. </p> <p> -Edit configs/default and change the MESA_MAJOR, MESA_MINOR and MESA_TINY -version numbers. +Edit the MESA_MAJOR, MESA_MINOR and MESA_TINY version numbers in +configs/default. </p> <p> -Make sure the values in src/mesa/main/version.h is correct. +Make sure the values in src/mesa/main/version.h are correct. </p> <p> diff --git a/docs/download.html b/docs/download.html index 90f566351e..2d587f35f9 100644 --- a/docs/download.html +++ b/docs/download.html @@ -9,7 +9,9 @@ <H1>Downloading</H1> <p> -Last stable release: <b>7.0</b> +Current development release: <b>7.1</b> +<br> +Last stable release: <b>7.0.4</b> </p> <p> @@ -18,6 +20,11 @@ Primary download site: target="_parent">SourceForge</a> </p> +<p> +When a new release is coming, release candidates (betas) can be found +<a href="http://www.mesa3d.org/beta/">here</a>. +</p> + <p> Mesa is distributed in several parts: diff --git a/docs/faq.html b/docs/faq.html index 89496c8404..11b5d43255 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -187,24 +187,7 @@ has Mesa packages (like RPM or DEB) which you can easily install. </a></p> -<h2><a name="part2">2.2 Running <code>configure; make</code> doesn't Work</a></h2> -<p> -Mesa no longer supports GNU autoconf/automake. Why? -<ul> -<li>It seemed to seldom work on anything but Linux -<li>The config files were hard to maintain and hard to understand -<li>libtool caused a lot of grief -</ul> - -<p> -Now Mesa again uses a conventional Makefile system (as it did originally). -Basically, each Makefile in the tree includes one of the configuration -files from the config/ directory. -The config files specify all the variables for a variety of popular systems. -</p> - - -<h2><a name="part2">2.3 I get undefined symbols such as bgnpolygon, v3f, etc...</a></h2> +<h2><a name="part2">2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</a></h2> <p> <a name="part2">You're application is written in IRIS GL, not OpenGL. IRIS GL was the predecessor to OpenGL and is a different thing (almost) @@ -213,7 +196,7 @@ Mesa's not the solution. </a></p> -<h2><a name="part2">2.4 Where is the GLUT library?</a></h2> +<h2><a name="part2">2.3 Where is the GLUT library?</a></h2> <p> <a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaGLUT-x.y.z.tar.gz file. If you don't already have GLUT installed, you should grab the MesaGLUT @@ -222,7 +205,7 @@ package and compile it with the rest of Mesa. -<h2><a name="part2">2.5 What's the proper place for the libraries and headers?</a></h2> +<h2><a name="part2">2.4 What's the proper place for the libraries and headers?</a></h2> <p> <a name="part2">On Linux-based systems you'll want to follow the </a><a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html" @@ -342,12 +325,12 @@ will fix the problem. <h2>4.1 How can I contribute?</a></h2> <p> -First, join the <a href="http://www.mesa3d.org/lists.html>Mesa3d-dev +First, join the <a href="http://www.mesa3d.org/lists.html">Mesa3d-dev mailing list</a>. That's where Mesa development is discussed. -</a></p> +</p> <p> -The </a><a href="http://www.opengl.org/documentation" target="_parent"> +The <a href="http://www.opengl.org/documentation" target="_parent"> OpenGL Specification</a> is the bible for OpenGL implemention work. You should read it. </p> diff --git a/docs/fbdev-dri.html b/docs/fbdev-dri.html index c7f59bb0c2..e941b1679e 100644 --- a/docs/fbdev-dri.html +++ b/docs/fbdev-dri.html @@ -1,15 +1,15 @@ -<html> +<html><head><title>Mesa fbdev/DRI Environment</title> -<TITLE>Mesa fbdev/DRI Environment</TITLE> -<link rel="stylesheet" type="text/css" href="mesa.css"></head> -<BODY> +<link rel="stylesheet" type="text/css" href="mesa.css"></head> -<center><H1>Mesa fbdev/DRI Drivers</H1></center> +<body> +<center><h1>Mesa fbdev/DRI Drivers</h1></center> +<br> -<H1>1. Introduction</H1> +<h1>1. Introduction</h1> <p> The fbdev/DRI environment supports hardware-accelerated 3D rendering without @@ -22,48 +22,131 @@ Contributors to this project include Jon Smirl, Keith Whitwell and Dave Airlie. <p> Applications in the fbdev/DRI environment use -the <a href="MiniGXL.html"> MiniGLX</a> interface to choose pixel +the <a href="http://www.nabble.com/file/p15480666/MiniGXL.html"> MiniGLX</a> interface to choose pixel formats, create rendering contexts, etc. It's a subset of the GLX and Xlib interfaces allowing some degree of application portability between the X and X-less environments. </p> +<p> +Note that this environment is not well-supported and these instructions +may not be completely up to date. +</p> +<br> + + <h1>2. Compilation</h1> +<p> +<h2>2.1 glxproto</h2> + +Get <a href="http://cvsweb.xfree86.org/cvsweb/*checkout*/xc/include/GL/glxproto.h?rev=1.9">glxproto.h</a>. Copy it to the /mesa/include/GL/ directory. +</p> + +<h2>2.2 libpciaccess</h2> <p> -You'll need the DRM and pciaccess libraries. Check with: +Check if you have libpciaccess installed: </p> -<pre> - pkg-config --modversion libdrm - pkg-config --modversion pciaccess -</pre> +<pre>pkg-config --modversion pciaccess +</pre> <p> -You can get them from the git repository with: +If not you can download the latest code from: </p> -<pre> - git clone git://anongit.freedesktop.org/git/mesa/drm - git clone git://anongit.freedesktop.org/git/xorg/lib/libpciaccess +<pre> git clone git://anongit.freedesktop.org/git/xorg/lib/libpciaccess </pre> - <p> -See the README files in those projects for build/install instructions. +Run autogen.sh to generate a configure file. autogen.sh uses autoconf +utility. This utility may not be installed with your linux distro, +check if it is available. if not you can use your package manager or +type: </p> +<pre>sudo apt-get install autoconf +</pre> +The next step is to install the libpciaccess library. +<pre>make +make install +</pre> +<p> Now your libpciaccess.a file is saved into /usr/local/lib +directory. If you have a libpciaccess.a in /usr/lib you may simply copy +and overwrite these files. Don't forget to copy libpciaccess.pc file to +/usr/lib/pkgconfig, which is also located in /usr/local/lib/pkgconfig/. +Or you may use the following system variables: +</p> +<pre>export LD_LIBRARY_PATH=/usr/local/lib +export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig +</pre> +<h2>2.3 drm</h2> + +<p>The next step is to compile the drm. DRM consists of two seperate parts, +the DRM client library(lindrm.so) and kernel device module(such as +radeon.ko). We need to make a small change in kernel device module. So +you need to download the kernel source. You may choose the nearest +mirror from www.kernel.org, or you are using Fedora Core 5, for +example, you may need to install RPMs such as: +kernel-smp-devel-2.16.15-1.2054_FC5.i686.rpm +kernel-devel-2.6.15-1.2054_FC5.i686.rpm +etc. You can find a detailed information <a href="http://www.howtoforge.com/kernel_compilation_fedora">here.</a> +</p> -<p> +<p>You will find drm_drv.c at /usr/src/LINUX-VERSION/drivers/char/drm/. Edit this code and comment out the following part: +</p> + +<pre> + /* || + ((ioctl->flags & DRM_MASTER) && !priv->master)*/ +</pre> +Now you are ready to compile your kernel. If your kernel version is +identical to the version you have compiled, you can simply over write +your new "ko" files over older ones. If you have compiled a different +kernel, you must configure your grub or lilo to be able to boot your +new kernel. <p> You'll need fbdev header files. Check with: </p> <pre> - ls -l /usr/include/linux/fb.h + ls -l /usr/include/linux/fb. </pre> +<p>This file may be missing if you have not installed linux header files. -<p> -Compile Mesa with the 'linux-solo' configuration: + +<h2>2.4 Mesa</h2> + +</p><p>Get latest development Mesa sources from git repository +(currently 7.1-prerelease) +</p> +<pre> + git clone git://anongit.freedesktop.org/git/mesa/mesa +</pre> + +<p>You will need the makedepend utility which is a part of mesa project +to build your linux-solo. You probably wont have this utility. You can +download its source from following git repulsitory: </p> <pre> - make linux-solo + git clone git://anongit.freedesktop.org/git/xorg/util/makedepend +</pre> + +<p>Get the latest stable mesa version from SourceForge (currently 7.0.3) +<a href="http://sourceforge.net/project/showfiles.php?group_id=3">http://sourceforge.net/project/showfiles.php?group_id=3</a> +</p> + +<p>Copy the miniglx folder from 7.1-prerelease to 7.0.3. +You may also extract GLUT to 7.0.3 version at this step. +</p> + +<p>Edit linux-solo.conf at /conf directory, just only compile the +graphics driver you need, delete the unwanted drivers names from the +list(some drivers are causing problems...) +</p> +<pre> + while(build==0) + { + make linux-solo + + There will be some missing header files, copy them from 7.1-prerelease + } </pre> <p> @@ -71,22 +154,40 @@ When complete you should have the following: </p> <ul> <li>lib/libGL.so - the GL library which applications link with -<li>lib/*_dri_so - DRI drivers -<li>lib/miniglx.conf - sample MiniGLX config file -<li>progs/miniglx/* - several MiniGLX sample programs -</ul> +</li><li>lib/*_dri_so - DRI drivers +</li><li>lib/miniglx.conf - sample MiniGLX config file +</li><li>progs/miniglx/* - several MiniGLX sample programs +</li></ul> + +To install these files into appropriate locations in system: +<pre> + make install +</pre> +Now your openGL libraries are copied to /usr/local/lib and +miniglx.conf is copied to /etc. You may copy them to /usr/lib and +overwrite your old GL libraries. Or you may export following variable: + +<pre> + export LIBGL_DRIVERS_PATH=/usr/local/lib +</pre> +<br> <h1>3. Using fbdev/DRI</h1> <p> If an X server currently running, exit/stop it so you're working from -the console. +the console. Following command shuts down the x window and also the multi user support. </p> +<pre> + init 1 +</pre> - -<h2>3.1 Load Kernel Modules</h2> +<p>Also you may define the runlevel as 1 in "/etc/inittab". Your system +will always start in single user mode and without x-window with this +option set. +</p><h2>3.1 Load Kernel Modules</h2> <p> You'll need to load the kernel modules specific to your graphics hardware. @@ -100,8 +201,7 @@ As root, the kernel modules can be loaded as follows: <p> If you have Intel i915/i945 hardware: </p> -<pre> - modprobe agpgart # the AGP GART module +<pre> modprobe agpgart # the AGP GART module modprobe intelfb # the Intel fbdev driver modprobe i915 # the i915/945 DRI kernel module </pre> @@ -109,8 +209,7 @@ If you have Intel i915/i945 hardware: <p> If you have ATI Radeon/R200 hardware: </p> -<pre> - modprobe agpgart # the AGP GART module +<pre> modprobe agpgart # the AGP GART module modprobe radeonfb # the Radeon fbdev driver modprobe radeon # the Radeon DRI kernel module </pre> @@ -118,8 +217,7 @@ If you have ATI Radeon/R200 hardware: <p> If you have ATI Rage 128 hardware: </p> -<pre> - modprobe agpgart # the AGP GART module +<pre> modprobe agpgart # the AGP GART module modprobe aty128fb # the Rage 128 fbdev driver modprobe r128 # the Rage 128 DRI kernel module </pre> @@ -127,8 +225,7 @@ If you have ATI Rage 128 hardware: <p> If you have Matrox G200/G400 hardware: </p> -<pre> - modprobe agpgart # the AGP GART module +<pre> modprobe agpgart # the AGP GART module modprobe mgafb # the Matrox fbdev driver modprobe mga # the Matrox DRI kernel module </pre> @@ -136,8 +233,7 @@ If you have Matrox G200/G400 hardware: <p> To verify that the agpgart, fbdev and drm modules are loaded: </p> -<pre> - ls -l /dev/agpgart /dev/fb* /dev/dri +<pre> ls -l /dev/agpgart /dev/fb* /dev/dri </pre> <p> Alternately, use lsmod to inspect the currently installed modules. @@ -148,16 +244,15 @@ If you have problems, look at the output of dmesg. <h2>3.2 Configuration File</h2> <p> -Copy the sample miniglx.conf to /etc/miniglx.conf and review/edit its contents. +review/edit /etc/miniglx.conf. Alternately, the MINIGLX_CONF environment variable can be used to indicate the location of miniglx.conf </p> To determine the pciBusID value, run lspci and examine the output. For example: -</p> -<pre> - /sbin/lspci: +<p></p> +<pre> /sbin/lspci: 00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Express Chipset Family Graphics Controller (rev 04) </pre> <p> @@ -180,15 +275,13 @@ for example. Change to the <code>Mesa/progs/miniglx/</code> directory and start the sample_server program in the background: </p> -<pre> - ./sample_server & +<pre> ./sample_server & </pre> <p> Then try running the <code>miniglxtest</code> program: </p> -<pre> - ./miniglxtest +<pre> ./miniglxtest </pre> <p> You should see a rotating quadrilateral which changes color as it rotates. @@ -199,7 +292,7 @@ It will exit automatically after a bit. If you run other tests in the miniglx/ directory, you may want to run them from a remote shell so that you can stop them with ctrl-C. </p> - +<br> <h1>4.0 Troubleshooting</h1> @@ -208,8 +301,7 @@ them from a remote shell so that you can stop them with ctrl-C. <li> If you try to run miniglxtest and get the following: <br> -<pre> - [miniglx] failed to probe chipset +<pre> [miniglx] failed to probe chipset connect: Connection refused server connection lost </pre> @@ -223,7 +315,7 @@ It means that the sample_server process is not running. <h1>5.0 Programming Information</h1> <p> -OpenGL/Mesa is interfaced to fbdev via the <a href="MiniGLX.html">MiniGLX</a> +OpenGL/Mesa is interfaced to fbdev via the <a href="http://www.nabble.com/file/p15480666/MiniGLX.html">MiniGLX</a> interface. MiniGLX is a subset of Xlib and GLX API functions which provides just enough functionality to setup OpenGL rendering and respond to simple @@ -244,5 +336,6 @@ See the <code>GL/miniglx.h</code> header file for details. </p> + </body> </html> diff --git a/docs/helpwanted.html b/docs/helpwanted.html index 346f093d64..4cd92b97a9 100644 --- a/docs/helpwanted.html +++ b/docs/helpwanted.html @@ -6,7 +6,7 @@ <BODY> -<H1>Help Wanted</H1> +<H1>Help Wanted / To-Do List</H1> <p> We can always use more help with the Mesa project. @@ -14,36 +14,13 @@ Here are some specific ideas and areas where help would be appreciated: </p> <ol> -<li><p> - Generate the src/mesa/main/enums.c file with a Python script which - uses the gl_API.xml file. - </p> -<li><p> - Try to auto-generate the display list "save" functions seen in dlist.c - using a Python script and the gl_API.xml file. - The gl_API.xml file will probably need a new tag to indicate whether or - not each function gets compiled into display lists. - </p> -<li><p> - Maintenance of assembly language files on Linux, Windows and SPARC systems. - </p> -<li><p> - Help to incorporate the 3Dlabs' shading language compiler for OpenGL 2.0. - </p> -<li><p> - Implement assembly language (SSE/MMX) code generation for - vertex/fragment programs. - </p> -<li><p> - Windows 98/NT driver building, maintenance and testing - (Karl Schultz has been doing a great job of this lately). - </p> -<li><p> - Maintenance and testing of various drivers, such as DOS/DJGPP, GGI, etc. - </p> -<li><p> - Write new tests for Glean. - </p> +<li> +Enable -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing +issues in the code. +<li> +Windows 98/NT driver building, maintenance and testing +<li> +Maintenance and testing of lesser-used drivers, such as DOS/DJGPP, GGI, etc. </ol> diff --git a/docs/install.html b/docs/install.html index 804dee59b5..16ef013688 100644 --- a/docs/install.html +++ b/docs/install.html @@ -21,10 +21,42 @@ <a name="unix-x11"> <H2>1. Unix/X11 Compilation and Installation</H1> -<h3>1.1 Compilation</h3> +<h3>1.1 Prerequisites for DRI and Hardware Acceleration</h3> + +<p> +To build Mesa 7.1 with DRI-based hardware acceleration you must first have +the <a href="http://dri.freedesktop.org/libdrm/" target="_parent">DRM version 2.3.1</a>. +</p> + +<p> +You should also be using the Xorg server version 1.4 or 1.5. +</p> + + + +<h3>1.2 Autoconf Compilation</h3> + +<p> +Mesa may be <a href="autoconf.html">built using autoconf</a>. +This should work well on most GNU-based systems. +When that fails, the traditional Mesa build system is available. + + + +<h3>1.3 Traditional Compilation</h3> + +<p> +The traditional Mesa build system is based on a collection of pre-defined +system configurations. +</p> <p> -Mesa may be compiled in several different ways: +To see the list of configurations, type <b>make</b> alone. +Then choose a configuration from the list and type <b>make configname</b>. +</p> + +<p> +Mesa may be built in several different ways using the predefined configurations: </p> <ul> <li><b><em>Stand-alone/Xlib mode</em></b> - Mesa will be compiled as @@ -49,62 +81,6 @@ accelerated OpenGL rendering (for ATI, Intel, Matrox, etc) will be built. The libGL.so library will support the GLX extension and will load/use the DRI hardware drivers. -<p> -<b>Prerequisites:</b> -</p> - -<ol> - -<li> -<p> -DRM kernel modules and header files from the -<a href="http://dri.sf.net/" target="_parent">DRI</a> project. -</p> - -<p> -If you don't already have the DRM file, you can get the sources from -CVS by doing: -<pre> -cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri co drm -</pre> -<p> -See the <a href="http://dri.freedesktop.org/wiki/Building" target="_parent"> -DRI Building Instructions</a> for the steps to build the DRM modules. Mesa -6.5 requires at least libdrm 2.0.1 or greater. -</p> -<p> -You can verify that the DRM files have been properly installed by -running <code>pkg-config --modversion libdrm</code> - -</li> - -<li> -Recent /usr/include/GL/glxproto.h file. -<p>You'll need this if you get any errors about _GLXvop_BindTexImageEXT -being undefined. -</p> -<p> -Download/install the -<a href="http://gitweb.freedesktop.org/?p=xorg/proto/glproto.git">glproto</a> -module from X.org git, or grab the -<A href="http://webcvs.freedesktop.org/*checkout*/xorg/proto/GL/glxproto.h?rev=1.9&content-type=text%2Fplain">glxproto.h file</a> and put it in the -Mesa/include/GL/ directory. -</p> - -</li> - -<li>DRI-enabled X server. -<p>Visit -<a href="http://www.xfree86.org" target="_parent">XFree86</a> -or -<a href="http://freedesktop.org/wiki/Software_2fXserver" target="_parent"> -X.org</a> -for more information. -</p> -</li> - -</ol> - <p> Build Mesa and the DRI hardware drivers by running @@ -117,8 +93,13 @@ There are also <code>linux-dri-x86</code>, <code>linux-dri-x86-64</code>, and <code>linux-ppc</code> configurations which are optimized for those architectures. </p> +<p> +Make sure you have the prerequisite versions of DRM and Xserver mentioned +above. +</p> </li> + </ul> @@ -128,7 +109,7 @@ Later, if you want to rebuild for a different configuration run </p> -<h3>1.2 The libraries</h3> +<h3>1.4 The libraries</h3> <p> When compilation has finished, look in the top-level <code>lib/</code> @@ -169,15 +150,15 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSM If you built the DRI hardware drivers, you'll also see the DRI drivers: </p> <pre> --rwxr-xr-x 1 brian users 15607851 Jul 21 12:11 ffb_dri.so* --rwxr-xr-x 1 brian users 15148747 Jul 21 12:11 i810_dri.so* --rwxr-xr-x 1 brian users 14497814 Jul 21 12:11 i830_dri.so* --rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so* +-rwxr-xr-x 1 brian users 15607851 Jul 21 12:11 ffb_dri.so +-rwxr-xr-x 1 brian users 15148747 Jul 21 12:11 i810_dri.so +-rwxr-xr-x 1 brian users 14497814 Jul 21 12:11 i830_dri.so +-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so -rwxr-xr-x 1 brian users 11320803 Jul 21 12:11 mach64_dri.so -rwxr-xr-x 1 brian users 11418014 Jul 21 12:12 mga_dri.so -rwxr-xr-x 1 brian users 11064426 Jul 21 12:12 r128_dri.so -rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so --rwxr-xr-x 1 brian users 16050488 Jul 21 12:11 r300_dri.so* +-rwxr-xr-x 1 brian users 16050488 Jul 21 12:11 r300_dri.so -rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so -rwxr-xr-x 1 brian users 11232304 Jul 21 12:13 s3v_dri.so -rwxr-xr-x 1 brian users 11062970 Jul 21 12:13 savage_dri.so @@ -188,7 +169,7 @@ If you built the DRI hardware drivers, you'll also see the DRI drivers: </pre> -<h3>1.3 Running the demos</h3> +<h3>1.5 Running the demos</h3> <p> If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or @@ -197,18 +178,15 @@ bunch of demonstration programs. </p> <p> -Before running a demo, you may have to set an environment variable -(such as <b>LD_LIBRARY_PATH</b> on Linux) to indicate where the -libraries are located. For example: +Before running a demo, you'll probably have to set two environment variables +to indicate where the libraries are located. For example: <p> <blockquote> -<b>cd</b> into the Mesa <b>lib/</b> directory. +<b>cd lib/</b> <br> -<b>setenv LD_LIBRARY_PATH ${cwd}</b> (if using csh or tcsh shell) +<b>export LD_LIBRARY_PATH=${PWD}</b> <br> -or, -<br> -<b>export LD_LIBRARY_PATH=${PWD}</b> (if using bash or sh shell) +<b>export LIBGL_DRIVERS_PATH=${PWD}</b> (if using DRI drivers) </blockquote> <p> @@ -266,7 +244,7 @@ Retrace your steps if this doesn't look right. </p> -<H3>1.4 Installing the header and library files</H3> +<H3>1.6 Installing the header and library files</H3> <p> The standard location for the OpenGL header files on Unix-type systems is @@ -287,7 +265,15 @@ already installed, you'll have to choose different directories, like To install Mesa's headers and libraries, run <code>make install</code>. But first, check the Mesa/configs/default file and examine the values of the <b>INSTALL_DIR</b> and <b>DRI_DRIVER_INSTALL_DIR</b> variables. -Change them if needed, then run <code>make install</code> +Change them if needed, then run <code>make install</code>. +</p> + +<p> +The variable +<b>DESTDIR</b> may also be used to install the contents to a temporary +staging directory. +This can be useful for package management. +For example: <code>make install DESTDIR=/somepath/</code> </p> <p> @@ -298,6 +284,26 @@ This is a handy way to compare multiple OpenGL implementations. </p> +<H3>1.7 Building OpenGL Programs With pkg-config</H3> + +<p> +Running <code>make install</code> will install package configuration files +for the pkg-config utility. +</p> + +<p> +When compiling your OpenGL application you can use pkg-config to determine +the proper compiler and linker flags. +</p> + +<p> +For example, compiling and linking a GLUT application can be done with: +</p> +<pre> + gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo +</pre> + +<br> <a name="windows"> <H2>2. Windows Compilation and Installation</H1> diff --git a/docs/intro.html b/docs/intro.html index 0e37322823..aae2e6e192 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -22,9 +22,10 @@ for modern GPUs. <p> Mesa ties into several other open-source projects: the -<a href="http://dri.sf.net/" target="_parent">Direct Rendering Infrastructure</a> -and <a href="http://x.org" target="_parent">X.org</a> to provide OpenGL -support to users of X on Linux, FreeBSD and other operating systems. +<a href="http://dri.freedesktop.org/" target="_parent">Direct Rendering +Infrastructure</a> and <a href="http://x.org" target="_parent">X.org</a> to +provide OpenGL support to users of X on Linux, FreeBSD and other operating +systems. </p> diff --git a/docs/license.html b/docs/license.html index 944a5ddf00..44b980d93d 100644 --- a/docs/license.html +++ b/docs/license.html @@ -86,29 +86,32 @@ and their respective licenses. <H1>Mesa Component Licenses</H1> <pre> -Component Location Primary Author License ----------------------------------------------------------------------------- -Main Mesa code src/mesa/ Brian Paul Mesa (MIT) +Component Location License +------------------------------------------------------------------ +Main Mesa code src/mesa/ Mesa (MIT) -Device drivers src/mesa/drivers/* See drivers See drivers +Device drivers src/mesa/drivers/* MIT, generally -Ext headers include/GL/glext.h SGI SGI Free B +Ext headers include/GL/glext.h Khronos include/GL/glxext.h -GLUT src/glut/ Mark Kilgard Mark's copyright +GLUT src/glut/ Mark Kilgard's copyright -Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL +SGI GLU library src/glu/sgi/ SGI Free B -SGI GLU library src/glu/sgi/ SGI SGI Free B +demo programs progs/demos/ see source files -demo programs progs/demos/ various see source files +X demos progs/xdemos/ see source files -X demos progs/xdemos/ Brian Paul see source files +SGI demos progs/samples/ SGI license -SGI demos progs/samples/ SGI SGI copyright - -RedBook demos progs/redbook/ SGI SGI copyright +RedBook demos progs/redbook/ SGI license </pre> +<p> +In general, consult the source files for license terms. +</p> + + </body> </html> diff --git a/docs/lists.html b/docs/lists.html index a2cad129cf..5227fbd055 100644 --- a/docs/lists.html +++ b/docs/lists.html @@ -9,7 +9,7 @@ <H1>Mailing Lists</H1> -<p>There are four Mesa mailing lists: +<p>There are four Mesa 3D / DRI mailing lists: </p> <ul> @@ -19,14 +19,14 @@ versions are sent to this list. </li> <br> <li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-users" -target="_parent">mesa3d-users</a> - intended for users of the Mesa library. +target="_parent">mesa3d-users</a> - intended for users of the Mesa and DRI. Newbie questions are appropriate, but please try the general OpenGL -resources and Mesa documentation first. +resources and Mesa/DRI documentation first. </li> <br> <li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-dev" -target="_parent">mesa3d-dev</a> - for discussion of Mesa development. -Not for beginners. +target="_parent">mesa3d-dev</a> - for discussion of Mesa and Direct Rendering +Infrastructure development. Not for beginners. </li> <br> <li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit" @@ -37,6 +37,9 @@ Note: the old mesa3d-cvs list is no longer in use. </li> </ul> +<p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD +kernels, see <a href="http://dri.freedesktop.org/wiki/MailingLists">wiki</a>. + <p> <b>Notice</b>: non-member posts to any of these lists will be automatically rejected. diff --git a/docs/modelers.html b/docs/modelers.html index b93f4d8b76..aae9686959 100644 --- a/docs/modelers.html +++ b/docs/modelers.html @@ -28,7 +28,7 @@ </li><li><a href="http://innovation3d.sourceforge.net/" target="_parent">Innovation3D</a> - 3D modeling program </li><li><a href="http://mesa3d.sourceforge.net/notfound.html" target="_parent">KWRL</a> - VRML browser - </li><li><a href="http://www.vermontel.com/%7Ecmorley/vrml.html" target="_parent">LibVRML97/Lookat</a> + </li><li><a href="http://www.openvrml.org/" target="_parent">LibVRML97/Lookat</a> - VRML viewer </li><li><a href="http://aig.cs.man.ac.uk/systems/Maverik/" target="_parent">Maverik</a> - VR graphics and interaction system diff --git a/docs/news.html b/docs/news.html index b766ce7c75..6d0d83659b 100644 --- a/docs/news.html +++ b/docs/news.html @@ -11,6 +11,69 @@ <H1>News</H1> +<h2>August 26, 2008</h2> +<p> +<a href="relnotes-7.1.html">Mesa 7.1</a> is released. +This is a new development release. +It should be relatively stable, but those especially concerned about +stability should wait for the 7.2 release or use Mesa 7.0.4 (the +previous stable release). +</p> + + +<h2>August 16, 2008</h2> +<p> +<a href="relnotes-7.0.4.html">Mesa 7.0.4</a> is released. +This is a bug-fix release. +</p> + + +<h2>April 4, 2008</h2> +<p> +<a href="relnotes-7.0.3.html">Mesa 7.0.3</a> is released. +This is a bug-fix release. +</p> + + +<h2>January 24, 2008</h2> + +<p> +Added a new page describing the <a href="cell.html">Mesa Cell driver</a>. +</p> + + + +<h2>November 13, 2007</h2> + +<p> +Gallium3D is the codename for the new Mesa device driver architecture +which is currently under development. +A <a href="http://www.tungstengraphics.com/wiki/index.php/Gallium3D" +target="_parent"> summary</a> of the architecture can be found on the +Tungsten Graphics website. +</p> +<p> +Gallium3D development is taking place on the <em>gallium-0.1</em> branch +of the git repository. +Currently, there's only a software-only driver and an Intel i915/945 driver +but other drivers will be coming... +</p> + + +<h2>November 10, 2007</h2> +<p> +<a href="relnotes-7.0.2.html">Mesa 7.0.2</a> is released. +This is a bug-fix release. +</p> + + +<h2>August 3, 2007</h2> +<p> +<a href="relnotes-7.0.1.html">Mesa 7.0.1</a> is released. +This is a bug-fix release. +</p> + + <h2>June 22, 2007</h2> <p> <a href="relnotes-7.0.html">Mesa 7.0</a> is released. diff --git a/docs/relnotes-7.0.1.html b/docs/relnotes-7.0.1.html new file mode 100644 index 0000000000..02713ad5e0 --- /dev/null +++ b/docs/relnotes-7.0.1.html @@ -0,0 +1,101 @@ +<HTML> + +<TITLE>Mesa Release Notes</TITLE> + +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.0.1 Release Notes / August 3, 2007</H1> + +<p> +Mesa 7.0.1 is a stable release with bug fixes since version 7.0. +</p> + + +<h2>MD5 checksums</h2> +<pre> +db55141a44b902fcc61d9265b7862c06 MesaLib-7.0.1.tar.gz +c056abd763e899114bf745c9eedbf9ad MesaLib-7.0.1.tar.bz2 +ecc2637547fae2b38271ae362d013afa MesaLib-7.0.1.zip +b85a4a5be4e829f4a1165e4514b13183 MesaDemos-7.0.1.tar.gz +3b66b3268df12ca8a6c4e0c4c457912c MesaDemos-7.0.1.tar.bz2 +b1c18006f16e44e80fea66774c59b391 MesaDemos-7.0.1.zip +b87a69986839ae43ce12fc8e3dc1ebb4 MesaGLUT-7.0.1.tar.gz +25f30d0c1651997b4412366ba0572f7f MesaGLUT-7.0.1.tar.bz2 +676ee6682a6ce78a5540554fd975c03e MesaGLUT-7.0.1.zip +</pre> + + +<h2>New features</h2> +<ul> +<li>Added a bluegene-osmesa build config +</ul> + +<h2>Bug fixes</h2> +<ul> +<li>Fixed some MingW build issues +<li>Added a few missing OpenGL 2.0 API entrypoints: + <ul> + <li>glVertexAttrib4bv + <li>glVertexAttrib4iv + <li>glVertexAttrib4ubv + <li>glVertexAttrib4uiv + <li>glVertexAttrib4usv + </ul> +<li>Fixed glDrawPixels(GL_STENCIL_INDEX) pixel transfer bug 11457 +<li>GLSL bug fix: added vec2(vec4) constructor +<li>GLSL bug fix: .strq and .rgba writemasks didn't always work +<li>Stencil pixel map didn't always work for glDrawPixels (bug 11475) +<li>Fixed polygon stipple bug in i915 driver +<li>Binding a zero-sized texture didn't disable texturing (bug 11309) +<li>Queries of GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH didn't include +the terminating zero (bug 11588) +<li>glXChooseFBConfig() in Xlib driver didn't handle GLX_STEREO flag properly +<li>Fixed a GLSL function call bug (#11731) +<li>glPointParameteriv(GL_DISTANCE_ATTENUATION_EXT) didn't work (bug 11754) +<li>glGetAttribLocation() always returned 1 (bug 11774) +<li>Fixed a few memory-related bugs in GLU library +</ul> + + +<h2>Changes</h2> +<ul> +<li>The libOSMesa library version has been reverted to 6.5.3 (soname=6) +in order to avoid application linking issues. Otherwise, applications +previously linked with libOSMesa.so.6 would no longer link with libOSMesa.so.7 +<li>Dropped obsolete, unmaintained Windows project files for VC6 and VC7. +</ul> + + +<h2>To Do (someday) items</h2> +<ul> +<li>Switch to freeglut +<li>Fix linux-glide target/driver. +<li>Improved lambda and derivative calculation for frag progs. +</ul> + + +<h2>Driver Status</h2> + +<pre> +Driver Status +---------------------- ---------------------- +DRI drivers varies with the driver +XMesa/GLX (on Xlib) implements OpenGL 2.1 +OSMesa (off-screen) implements OpenGL 2.1 +Windows/Win32 implements OpenGL 2.1 +Glide (3dfx Voodoo1/2) implements OpenGL 1.3 +SVGA unsupported +Wind River UGL unsupported +DJGPP unsupported +GGI unsupported +BeOS unsupported +Allegro unsupported +D3D unsupported +</pre> + +</body> +</html> diff --git a/docs/relnotes-7.0.2.html b/docs/relnotes-7.0.2.html new file mode 100644 index 0000000000..7a7c70f13b --- /dev/null +++ b/docs/relnotes-7.0.2.html @@ -0,0 +1,88 @@ +<HTML> + +<TITLE>Mesa Release Notes</TITLE> + +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.0.2 Release Notes / November 10, 2007</H1> + +<p> +Mesa 7.0.2 is a stable release with bug fixes since version 7.0. +</p> + + +<h2>MD5 checksums</h2> +<pre> +c9cf607f36e7e50172f5f9c7d552c34e MesaLib-7.0.2.tar.gz +93e6ed7924ff069a4f883b4fce5349dc MesaLib-7.0.2.tar.bz2 +10c324c3613f90f059cb8429f700f300 MesaLib-7.0.2.zip +aa8b1244a5de1d23e5814bf9b67f1435 MesaDemos-7.0.2.tar.gz +11a10410bae7be85cf25bc7119966468 MesaDemos-7.0.2.tar.bz2 +1dd0b5fd6d69430a2fd76a6adbfd8fff MesaDemos-7.0.2.zip +a7dbf25c025955858bd2d89a6eb6db4c MesaGLUT-7.0.2.tar.gz +3a33f8efc8c58a592a854cfc7a643286 MesaGLUT-7.0.2.tar.bz2 +eba4ef2aa8c362ead81b54357f1903a3 MesaGLUT-7.0.2.zip +</pre> + + +<h2>New features</h2> +<ul> +<li>Updated Windows VC7 project files +<li>Added DESTDIR variable for 'make install' +<li>Added pkg-config files for gl, glu, glut and glw libraries +<li>Added bluegene-xlc-osmesa and catamount-osmesa-pgi configs +<li>Support for Intel G33/Q33/Q35 graphics chipsets +</ul> + +<h2>Bug fixes</h2> +<ul> +<li>Fixed a vertex buffer wrapping issue (bug 9962) +<li>Added mutex protection around texture object reference counters +<li>Added checking/support for additional chips in the i915/i945 family +(see 11978) +<li>Fixed a blending/banding issue (bug 11931) +<li>Fixed a GLU matrix inversion bug (#6748) +<li>Fixed problem with large glDrawArrays calls and indirect rendering (bug 12141) +<li>Fixed an assortment of i965 driver bugs +<li>Fixed x86-64 vertex transformation bug (12216) +<li>Fixed X server crash caused by multiple indirect rendering clients +<li>Parsing of state.texgen in ARB vertex/fragment programs didn't work (bug 12313) +<li>Fixed a glCopyPixels/glPixelZoom bug (12417) +<li>Fixed a bug when using glMaterial in display lists (bug 10604) +<li>Fixed a few GLUT/Fortran issues (Bill Mitchell) +<li>Fixed Blender crash bug (12164) +<li>Fixed some issues preventing cross-compiling +<li>Fixed up broken GL_ATI_separate_stencil extension +<li>glDrawArrays(count=0) led to a crash +<li>Fix SSE code gen memory leak, possible crash +<li>Fixed MMX 565 rgb conversion problem (bug 12614) +<li>Added -fno-strict-aliasing and -fPIC flags for gcc +<li>Fixed Blender crash in Unichrome driver (bug 13142) +</ul> + + +<h2>Driver Status</h2> + +<pre> +Driver Status +---------------------- ---------------------- +DRI drivers varies with the driver +XMesa/GLX (on Xlib) implements OpenGL 2.1 +OSMesa (off-screen) implements OpenGL 2.1 +Windows/Win32 implements OpenGL 2.1 +Glide (3dfx Voodoo1/2) implements OpenGL 1.3 +SVGA unsupported +Wind River UGL unsupported +DJGPP unsupported +GGI unsupported +BeOS unsupported +Allegro unsupported +D3D unsupported +</pre> + +</body> +</html> diff --git a/docs/relnotes-7.0.3.html b/docs/relnotes-7.0.3.html new file mode 100644 index 0000000000..5c8efc79d7 --- /dev/null +++ b/docs/relnotes-7.0.3.html @@ -0,0 +1,84 @@ +<HTML> + +<TITLE>Mesa Release Notes</TITLE> + +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.0.3 Release Notes / April 4, 2008</H1> + +<p> +Mesa 7.0.3 is a stable release with bug fixes since version 7.0.2. +</p> + + +<h2>MD5 checksums</h2> +<pre> +3fd1cb76531b2515ef7db92d9a93dbf8 MesaLib-7.0.3.tar.gz +e6e6379d7793af40a6bc3ce1bace572e MesaLib-7.0.3.tar.bz2 +97882bac195229ee0b78cab82e0e3be1 MesaLib-7.0.3.zip +8abf6bbcb1661e7dd4ce73b3fbb85898 MesaDemos-7.0.3.tar.gz +47fd6863621d3c9c7dbb870ab7f0c303 MesaDemos-7.0.3.tar.bz2 +99e442e14da1928f76a7297bb421a3af MesaDemos-7.0.3.zip +2b50fe9fadc4709b57c52adef09fce3c MesaGLUT-7.0.3.tar.gz +0ff23c4e91b238abae63a5fc9fa003e7 MesaGLUT-7.0.3.tar.bz2 +70e83554a4462dad28e0d6e20f79aada MesaGLUT-7.0.3.zip +</pre> + + +<h2>Bug fixes</h2> +<ul> +<li>Added missing glw.pc.in file to release tarball +<li>Fix GLUT/Fortran issues +<li>GLSL gl_FrontLightModelProduct.sceneColor variable wasn't defined +<li>Fix crash upon GLSL variable array indexes (not yet supported) +<li>Two-sided stencil test didn't work in software rendering +<li>Fix two-sided lighting bugs/crashes (bug 13368) +<li>GLSL gl_FrontFacing didn't work properly +<li>glGetActiveUniform returned incorrect sizes (bug 13751) +<li>Fix several bugs relating to uniforms and attributes in GLSL API (Bruce Merry, bug 13753) +<li>glTexImage3D(GL_PROXY_TEXTURE_3D) mis-set teximage depth field +<li>Fixed GLX indirect vertex array rendering bug (14197) +<li>Fixed crash when deleting framebuffer objects (bugs 13507, 14293) +<li>User-defined clip planes enabled for R300 (bug 9871) +<li>Fixed glBindTexture() crash upon bad target (bug 14514) +<li>Fixed potential crash in glDrawPixels(GL_DEPTH_COMPONENT) (bug 13915) +<li>Bad strings given to glProgramStringARB() didn't generate GL_INVALID_OPERATION +<li>Fixed minor point rasterization regression (bug 11016) +<li>state.texenv.color state var didn't work in GL_ARB_fragment_program (bug 14931) +<li>glBitmap from a PBO didn't always work +<li>glGetTexImage into a PBO didn't always work +<li>Comments at the end of ARB vertex/fragment programs crashed the parser +</ul> + +<h2>Changes</h2> +<ul> +<li>Updated glext.h to version 40 +</ul> + + + +<h2>Driver Status</h2> + +<pre> +Driver Status +---------------------- ---------------------- +DRI drivers varies with the driver +XMesa/GLX (on Xlib) implements OpenGL 2.1 +OSMesa (off-screen) implements OpenGL 2.1 +Windows/Win32 implements OpenGL 2.1 +Glide (3dfx Voodoo1/2) implements OpenGL 1.3 +SVGA unsupported +Wind River UGL unsupported +DJGPP unsupported +GGI unsupported +BeOS unsupported +Allegro unsupported +D3D unsupported +</pre> + +</body> +</html> diff --git a/docs/relnotes-7.0.4.html b/docs/relnotes-7.0.4.html new file mode 100644 index 0000000000..f100d99f09 --- /dev/null +++ b/docs/relnotes-7.0.4.html @@ -0,0 +1,80 @@ +<HTML> + +<TITLE>Mesa Release Notes</TITLE> + +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.0.4 Release Notes / August 16, 2008</H1> + +<p> +Mesa 7.0.4 is a stable release with bug fixes since version 7.0.3. +</p> + + +<h2>MD5 checksums</h2> +<pre> +909afa3a01ae31478d363837681415ac MesaLib-7.0.4.tar.gz +8d7bacbe0234742a5d08c8088c4619e9 MesaLib-7.0.4.tar.bz2 +5e44261ef85b049a868e1785d9adc276 MesaLib-7.0.4.zip +53dcd77d37a819feaf50b5fcdd0a6e0f MesaDemos-7.0.4.tar.gz +c1215b31c5f7b85f81eed3bfba07d556 MesaDemos-7.0.4.tar.bz2 +b1825a7361f116b28d82d328077630b4 MesaDemos-7.0.4.zip +d7677d015f52602d1bf8b837fb717848 MesaGLUT-7.0.4.tar.gz +f5f8b46f7e763d9f7b7d1d115c1c44ee MesaGLUT-7.0.4.tar.bz2 +a786775271a02c62a3370b13b26bf48d MesaGLUT-7.0.4.zip +</pre> + + +<h2>Bug fixes</h2> +<ul> +<li>define #extension GL_ARB_texture_rectangle in shading language +<li>fixed WIN32 compile problem in libGLU +<li>Fixed a per-vertex glMaterial bug which could cause bad lighting +<li>Fixed potential crash in AA/smoothed triangle rendering when using a fragment shader +<li>Fixed glDrawElement + VBO segfault (bug 16156) +<li>Fixed GLSL linker bug causing generic vertex attributes to get aliased +<li>Fixed stack overflow when using glPixelZoom on Windows +<li>Fixed broken all(bvec2) GLSL function, added misc missing bvec constructors +<li>ARB program "state.clip[n].plane" didn't parse correctly +<li>Fixed broken glGetUniformiv() (bug 13774) +</ul> + +<h2>Changes</h2> +<ul> +<li>Including the latest glext.h and glxext.h header files from Khronos +<li>Added support for DragonFly OS +<li>Added a build config for FreeBSD static libs (Anatolij Shkodin) +<li>Enabled GL_EXT_multi_draw_arrays extension in R200/R300 drivers +<li>Enabled GL_ARB_point_sprite extension in I965 driver +<li>Enabled GL_EXT_texture_sRGB extension in I965 driver +<li>Added support for GL shading language in I965 driver +</ul> + + + + +<h2>Driver Status</h2> + +<pre> +Driver Status +---------------------- ---------------------- +DRI drivers varies with the driver +XMesa/GLX (on Xlib) implements OpenGL 2.1 +OSMesa (off-screen) implements OpenGL 2.1 +Windows/Win32 implements OpenGL 2.1 +Glide (3dfx Voodoo1/2) implements OpenGL 1.3 +SVGA unsupported +Wind River UGL unsupported +DJGPP unsupported +GGI unsupported +BeOS unsupported +Allegro unsupported +D3D unsupported +</pre> + +</body> +</html> diff --git a/docs/relnotes-7.1.html b/docs/relnotes-7.1.html index d5d285803e..e8a39c8d34 100644 --- a/docs/relnotes-7.1.html +++ b/docs/relnotes-7.1.html @@ -8,32 +8,54 @@ <body bgcolor="#eeeeee"> -<H1>Mesa 7.1 Release Notes / (<em>in progress</em>)</H1> +<H1>Mesa 7.1 Release Notes / August 26, 2008</H1> <p> Mesa 7.1 is a new development release. +There have been many internal code changes since Mesa 7.0.x. +It should be relatively stable, but those who are especially concerned about +stability should wait for Mesa 7.2 or use Mesa 7.0.4 (the previous stable +release). +</p> +</> +Note that this version of Mesa does not use the GEM memory manager. +The master branch of git uses GEM. +</p> +<p> +DRM version 2.3.1 should be used with Mesa 7.1 </p> <h2>MD5 checksums</h2> <pre> -TBD +971c2fe6e6949dc5ba200a6f97a6dc81 MesaLib-7.1.tar.gz +6bff7f532d16f90f944a400c8bd7074d MesaLib-7.1.tar.bz2 +d48224bf9d54c3da6776adb4869ba024 MesaLib-7.1.zip +3de268420efca43e9a19ab506cdfc993 MesaDemos-7.1.tar.gz +abfc9775e1462363af8ec160d1feb01f MesaDemos-7.1.tar.bz2 +f7b3623387c4036e9895cd9ac0dfad99 MesaDemos-7.1.zip +fdf348f78cd09304b6ff801ef8acc8eb MesaGLUT-7.1.tar.gz +f6d88a4eeb02e98c7e92f1c895d3c76b MesaGLUT-7.1.tar.bz2 +4dc102a5ca51e1c41dde87d3f8c7b22a MesaGLUT-7.1.zip </pre> <h2>New features</h2> <ul> +<li>autoconf-based configuration (and clean-up of Makefiles) +<li>Assorted DRI driver enhancements +<li>Reduced dependencies between X server and Mesa <li>GL_EXT_texture_from_pixmap extension for Xlib driver +<li>Support for the GL shading language with i965 driver (implemented by Intel) +<li>ATI R500 series support (Radeon X1300–X1950) in r300 DRI driver </ul> <h2>Bug fixes</h2> <ul> -</ul> - - -<h2>Internal code changes</h2> -<ul> +<li>Numerous GLSL fixes +<li>Fixed some error code/detection bugs in the GLSL-related API functions +<li>Lots of DRI driver fixes. </ul> diff --git a/docs/relnotes.html b/docs/relnotes.html index 73bae8590f..e305977163 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -21,6 +21,10 @@ The release notes summarize what's new or changed in each Mesa release. <UL> <LI><A HREF="relnotes-7.1.html">7.1 release notes</A> +<LI><A HREF="relnotes-7.0.4.html">7.0.4 release notes</A> +<LI><A HREF="relnotes-7.0.3.html">7.0.3 release notes</A> +<LI><A HREF="relnotes-7.0.2.html">7.0.2 release notes</A> +<LI><A HREF="relnotes-7.0.1.html">7.0.1 release notes</A> <LI><A HREF="relnotes-7.0.html">7.0 release notes</A> <LI><A HREF="relnotes-6.5.3.html">6.5.3 release notes</A> <LI><A HREF="relnotes-6.5.2.html">6.5.2 release notes</A> diff --git a/docs/repository.html b/docs/repository.html index 39f5da4bbe..ed385288ea 100644 --- a/docs/repository.html +++ b/docs/repository.html @@ -85,6 +85,27 @@ Once your account is established: </ol> +<H2>Windows Users</H2> + +<p> +If you're <a href="http://git.or.cz/gitwiki/WindowsInstall" target="_parent"> +using git on Windows</a> you'll want to enable automatic CR/LF conversion in +your local copy of the repository: +</p> +<pre> + git config --global core.autocrlf true +</pre> + +<p> +This will cause git to convert all text files to CR+LF on checkout, +and to LF on commit. +</p> +<p> +Unix users don't need to set this option. +</p> +<br> + + <a name="developer"> <H2>Development Branches</H2> diff --git a/docs/shading.html b/docs/shading.html index 0e1a5e1a7b..2cd17c76ac 100644 --- a/docs/shading.html +++ b/docs/shading.html @@ -25,9 +25,10 @@ Contents <li><a href="#unsup">Unsupported Features</a> <li><a href="#notes">Implementation Notes</a> <li><a href="#hints">Programming Hints</a> -<li><a href="#standalone">Stand-alone Compiler</a> +<li><a href="#standalone">Stand-alone GLSL Compiler</a> <li><a href="#implementation">Compiler Implementation</a> <li><a href="#validation">Compiler Validation</a> +<li><a href="#120">GLSL 1.20 support</a> </ul> @@ -48,6 +49,7 @@ in Mesa: <li>The inverse trig functions asin(), acos(), and atan() are not implemented <li>The gl_Color and gl_SecondaryColor varying vars are interpolated without perspective correction +<li>Floating point literal suffixes 'f' and 'F' aren't allowed. </ul> <p> @@ -132,7 +134,7 @@ These issues will be addressed/resolved in the future. <a name="standalone"> -<h2>Stand-alone Compiler</h2> +<h2>Stand-alone GLSL Compiler</h2> <p> A unique stand-alone GLSL compiler driver has been added to Mesa. @@ -154,12 +156,10 @@ This tool is useful for: </ul> <p> -To build the glslcompiler program (this will be improved someday): +After building Mesa, the glslcompiler can be built by manually running: </p> <pre> - cd src/mesa - make libmesa.a - cd drivers/glslcompiler + cd src/mesa/drivers/glslcompiler make </pre> @@ -169,20 +169,31 @@ Here's an example of using the compiler to compile a vertex shader and emit GL_ARB_vertex_program-style instructions: </p> <pre> - glslcompiler --arb --linenumbers --vs vertshader.txt + bin/glslcompiler --debug --numbers --fs progs/glsl/CH06-brick.frag.txt </pre> <p> -The output may look similar to this: +results in: </p> <pre> -!!ARBvp1.0 - 0: MOV result.texcoord[0], vertex.texcoord[0]; - 1: DP4 temp0.x, state.matrix.mvp.row[0], vertex.position; - 2: DP4 temp0.y, state.matrix.mvp.row[1], vertex.position; - 3: DP4 temp0.z, state.matrix.mvp.row[2], vertex.position; - 4: DP4 temp0.w, state.matrix.mvp.row[3], vertex.position; - 5: MOV result.position, temp0; - 6: END +# Fragment Program/Shader + 0: RCP TEMP[4].x, UNIFORM[2].xxxx; + 1: RCP TEMP[4].y, UNIFORM[2].yyyy; + 2: MUL TEMP[3].xy, VARYING[0], TEMP[4]; + 3: MOV TEMP[1], TEMP[3]; + 4: MUL TEMP[0].w, TEMP[1].yyyy, CONST[4].xxxx; + 5: FRC TEMP[1].z, TEMP[0].wwww; + 6: SGT.C TEMP[0].w, TEMP[1].zzzz, CONST[4].xxxx; + 7: IF (NE.wwww); # (if false, goto 9); + 8: ADD TEMP[1].x, TEMP[1].xxxx, CONST[4].xxxx; + 9: ENDIF; + 10: FRC TEMP[1].xy, TEMP[1]; + 11: SGT TEMP[2].xy, UNIFORM[3], TEMP[1]; + 12: MUL TEMP[1].z, TEMP[2].xxxx, TEMP[2].yyyy; + 13: LRP TEMP[0], TEMP[1].zzzz, UNIFORM[0], UNIFORM[1]; + 14: MUL TEMP[0].xyz, TEMP[0], VARYING[1].xxxx; + 15: MOV OUTPUT[0].xyz, TEMP[0]; + 16: MOV OUTPUT[0].w, CONST[4].yyyy; + 17: END </pre> <p> @@ -308,5 +319,39 @@ should be added. </p> + +<a name="120"> +<h2>GLSL 1.20 support</h2> + +<p> +Support for GLSL version 1.20 is underway. Status as follows. +</p> + +<h3>Supported</h3> +<ul> +<li><code>mat2x3, mat2x4</code>, etc. types and functions +<li><code>transpose(), outerProduct(), matrixCompMult()</code> functions +(but untested) +<li>precision qualifiers (lowp, mediump, highp) +</ul> + +<h3>Partially Complete</h3> +<ul> +<li><code>invariant</code> qualifier +</ul> + +<h3>Not Completed</h3> +<ul> +<li><code>array.length()</code> method +<li><code>float[5] a;</code> array syntax +<li><code>centroid</code> qualifier +<li>unsized array constructors +<li>initializers for uniforms +<li>const initializers calling built-in functions +</ul> + + + + </BODY> </HTML> |