diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/contents.html | 7 | ||||
-rw-r--r-- | docs/egl.html | 276 | ||||
-rw-r--r-- | docs/envvars.html | 19 | ||||
-rw-r--r-- | docs/lists.html | 31 | ||||
-rw-r--r-- | docs/opengles.html | 9 | ||||
-rw-r--r-- | docs/openvg.html | 19 | ||||
-rw-r--r-- | docs/pbuffers.html | 54 | ||||
-rw-r--r-- | docs/relnotes-7.8.html | 4 | ||||
-rw-r--r-- | docs/sourcetree.html | 165 |
9 files changed, 497 insertions, 87 deletions
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..57b1d1488a --- /dev/null +++ b/docs/egl.html @@ -0,0 +1,276 @@ +<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_<dpy>_i915</code></li> +<li><code>egl_<dpy>_i965</code></li> +<li><code>egl_<dpy>_radeon</code></li> +<li><code>egl_<dpy>_nouveau</code></li> +<li><code>egl_<dpy>_swrast</code></li> +<li><code>egl_<dpy>_vmwgfx</code></li> +</ul> + +<p><code><dpy></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> + +<p>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>.</p> + +<p>The suggested way to learn to write a EGL driver is to see how other drivers +are written. <code>egl_glx</code> should be a good reference. It works in any +environment that has GLX support, and it is simpler than most drivers.</p> + +<h3>Lifetime of Display Resources</h3> + +<p>Contexts and surfaces are examples of display resources. They might live +longer than the display that creates them.</p> + +<p>In EGL, when a display is terminated through <code>eglTerminate</code>, all +display resources should be destroyed. Similarly, when a thread is released +throught <code>eglReleaseThread</code>, all current display resources should be +released. Another way to destory or release resources is through functions +such as <code>eglDestroySurface</code> or <code>eglMakeCurrent</code>.</p> + +<p>When a resource that is current to some thread is destroyed, the resource +should not be destroyed immediately. EGL requires the resource to live until +it is no longer current. A driver usually calls +<code>eglIs<Resource>Bound</code> to check if a resource is bound +(current) to any thread in the destroy callbacks. If it is still bound, the +resource is not destroyed.</p> + +<p>The main library will mark destroyed current resources as unlinked. In a +driver's <code>MakeCurrent</code> callback, +<code>eglIs<Resource>Linked</code> can then be called to check if a newly +released resource is linked to a display. If it is not, the last reference to +the resource is removed and the driver should destroy the resource. But it +should be careful here because <code>MakeCurrent</code> might be called with an +uninitialized display.</p> + +<p>This is the only mechanism provided by the main library to help manage the +resources. The drivers are responsible to the correct behavior as defined by +EGL.</p> + +<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/envvars.html b/docs/envvars.html index b2c0e01ee3..bb1c914cc7 100644 --- a/docs/envvars.html +++ b/docs/envvars.html @@ -51,5 +51,24 @@ See the <A HREF="xlibdriver.html">Xlib software driver page</A> for details. </ul> +<p> +These environment variables are for the Intel i945/i965 drivers: +</p> +<ul> +<li>INTEL_STRICT_CONFORMANCE - if set to 1, enable sw fallbacks to improve + OpenGL conformance. If set to 2, always use software rendering. +<li>INTEL_NO_BLIT - if set, disable hardware-accelerated glBitmap, + glCopyPixels, glDrawPixels. +</ul> + + +<p> +These environment variables are for the Radeon R300 driver: +</p> +<ul> +<li>R300_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting. +</ul> + + </BODY> </HTML> diff --git a/docs/lists.html b/docs/lists.html index 5227fbd055..9c17a9f354 100644 --- a/docs/lists.html +++ b/docs/lists.html @@ -13,36 +13,41 @@ </p> <ul> -<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-announce" -target="_parent">mesa3d-announce</a> - announcements of new Mesa -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 and DRI. -Newbie questions are appropriate, but please try the general OpenGL +target="_parent">mesa3d-users</a> - intended for end-users of Mesa and DRI +drivers. Newbie questions are OK, but please try the general OpenGL 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 and Direct Rendering -Infrastructure development. Not for beginners. +target="_parent">mesa3d-dev</a> - for Mesa, Gallium and DRI development +discussion. Not for beginners. </li> <br> <li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit" target="_parent">mesa-commit</a> - relays git check-in messages (for developers). +In general, people should not post to this list. +</li> <br> -Note: the old mesa3d-cvs list is no longer in use. +<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-announce" +target="_parent">mesa3d-announce</a> - announcements of new Mesa +versions are sent to this list. Very low traffic. </li> </ul> +<p> +Follow the links above for list archives. +</p> + <p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD -kernels, see <a href="http://dri.freedesktop.org/wiki/MailingLists">wiki</a>. +kernels, see the +<a href="http://dri.freedesktop.org/wiki/MailingLists" target="_parent"> +DRI wiki</a>. +</p> <p> -<b>Notice</b>: non-member posts to any of these lists will be automatically -rejected. +<b>Notice</b>: You must subscribe to these lists in order to post to them. </p> diff --git a/docs/opengles.html b/docs/opengles.html index d460bccf6c..fc41e6771c 100644 --- a/docs/opengles.html +++ b/docs/opengles.html @@ -10,15 +10,17 @@ <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/">http://www.khronos.org/opengles/</a>.</p> +<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.</p> +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_g3d,es</code> and enable the Gallium driver for your hardware.</li> +<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> @@ -28,7 +30,6 @@ working EGL implementation.</p> <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> - $ export EGL_DRIVER=/usr/local/lib/dri/egl_x11_i915.so # specify the EGL driver $ cd progs/es1/xegl $ make $ ./torus 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 index 717b96282c..6511d613d6 100644 --- a/docs/relnotes-7.8.html +++ b/docs/relnotes-7.8.html @@ -35,7 +35,9 @@ tbd <h2>New features</h2> <ul> <li>GL_NV_conditional_render extension (swrast driver only) -<li>GL_EXT_draw_buffers2 extension (swrast driver only) +<li>GL_EXT_draw_buffers2 extension (swrast and i965 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> 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> |