diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/GL3.txt | 69 | ||||
-rw-r--r-- | docs/README.WIN32 | 23 | ||||
-rw-r--r-- | docs/envvars.html | 1 | ||||
-rw-r--r-- | docs/install.html | 13 | ||||
-rw-r--r-- | docs/libGL.txt | 197 | ||||
-rw-r--r-- | docs/news.html | 11 | ||||
-rw-r--r-- | docs/relnotes-7.6.1.html | 35 | ||||
-rw-r--r-- | docs/relnotes-7.7.1.html | 48 | ||||
-rw-r--r-- | docs/relnotes-7.7.html | 19 | ||||
-rw-r--r-- | docs/relnotes-7.8.html | 54 | ||||
-rw-r--r-- | docs/relnotes.html | 3 | ||||
-rw-r--r-- | docs/shading.html | 9 |
12 files changed, 443 insertions, 39 deletions
diff --git a/docs/GL3.txt b/docs/GL3.txt new file mode 100644 index 00000000000..df3fd745498 --- /dev/null +++ b/docs/GL3.txt @@ -0,0 +1,69 @@ + +Status of OpenGL 3.x features in Mesa + + +Note: when an item is marked as "DONE" it means all the core Mesa +infrastructure is complete but it may be the case that few (if any) drivers +implement the features. + + +Feature Status +----------------------------------------------------- ------------------------ + +GL 3.0: + +GLSL changes (GL_EXT_gpu_shader4, etc) not started +Conditional rendering (GL_NV_conditional_render) DONE (swrast & softpipe) +Map buffer subranges (GL_APPLE_flush_buffer_range) not started +Float textures, renderbuffers some infrastructure done +Framebuffer objects (GL_EXT_framebuffer_object) DONE +Half-float some infrastructure done +Multisample blit DONE +Non-normalized Integer texture/framebuffer formats not started +1D/2D Texture arrays mostly done +Packed depth/stencil formats DONE +Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE +GL_EXT_texture_compression_rgtc not started +Red and red/green texture formats Ian? +Transform feedback (GL_EXT_transform_feedback) not started +Vertex array objects (GL_APPLE_vertex_array_object) DONE +sRGB framebuffer format (GL_EXT_framebuffer_sRGB) not started +glClearBuffer commands DONE, except for dispatch +glGetStringi command DONE, except for dispatch +glTexParameterI, glGetTexParameterI commands DONE, except for dispatch +glVertexAttribI commands not started +glBindFragDataLocation, glGetFragDataLocation cmds not started +glBindBufferRange, glBindBufferBase commands not started + + +GL 3.1: + +GLSL 1.30 and 1.40 not started +Instanced drawing (GL_ARB_draw_instanced) not started +Buffer copying (GL_ARB_copy_buffer) DONE +Primitive restart (GL_NV_primitive_restart) not started +16 vertex texture image units not started +Texture buffer objs (GL_ARB_textur_buffer_object) not started +Rectangular textures (GL_ARB_texture_rectangle) DONE +Uniform buffer objs (GL_ARB_uniform_buffer_object) not started +Signed normalized texture formats not started + + +GL 3.2: + +Core/compatibility profiles not started +GLSL 1.50 not started +Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack) +BGRA vertex order (GL_ARB_vertex_array_bgra) DONE +Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE +Frag shader coord (GL_ARB_fragment_coord_conventions) not started +Provoking vertex (GL_ARB_provoking_vertex) DONE +Seamless cubemaps (GL_ARB_seamless_cube_map) DONE, mostly? +Multisample textures (GL_ARB_texture_multisample) not started +Frag depth clamp (GL_ARB_depth_clamp) DONE +Fence objects (GL_ARB_sync) DONE + + + +More info about these features and the work involved can be found at +http://dri.freedesktop.org/wiki/MissingFunctionality diff --git a/docs/README.WIN32 b/docs/README.WIN32 index 97e1ffb7a75..204b8e66041 100644 --- a/docs/README.WIN32 +++ b/docs/README.WIN32 @@ -27,12 +27,6 @@ using the SDK with Visual Studio Express can be found at http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ -If you are stuck using VC6 or VC7, you may start with these project -files, but you may need to modify them to reflect changes in the -Mesa source code tree. If you sucessfully update the project files, -please submit them to the author of this document so that they may -be included in the next distribution. - The project files to build the core Mesa library, Windows Mesa drivers, OSMesa, and GLU are in the mesa directory. The project files to build GLUT and some demo programs are in the progs directory. @@ -106,23 +100,6 @@ should build all the demos. Build System Notes ----- ------ ----- -VC6 (not actively supported) ---- - -Visual Studio 6 does not recognize files with the .cc extension as C++ -language files, without a lot of unnatural tweaking. So, the VC6 -build process uses custom build steps to compile these files in the -GLU library. - -Two additional configurations are provided, Debug x86 and Release x86 -that activate the shader code compilation by defining SLANG_86. It is -unknown if and how this works. - -VC7 (not actively supported) ---- - -The above-mentioned .cc problem does not exist in this version. - VC8 --- diff --git a/docs/envvars.html b/docs/envvars.html index 6d7a321da9f..b2c0e01ee32 100644 --- a/docs/envvars.html +++ b/docs/envvars.html @@ -28,6 +28,7 @@ Setting this variable automatically sets the MESA_TEX_PROG variable as well. <li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions. A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension and disable the GL_EXT_bar extension. +<li>MESA_GLSL - <a href="shading.html#envvars">shading language options</a> </ul> <p> diff --git a/docs/install.html b/docs/install.html index 953d2094d5b..5aea92e0b51 100644 --- a/docs/install.html +++ b/docs/install.html @@ -35,14 +35,14 @@ <h3>1.1 Prerequisites for DRI and hardware acceleration</h3> <p> -The following are required for DRI-based hardware acceleration with Mesa 7.3: +The following are required for DRI-based hardware acceleration with Mesa: </p> <ul> <li><a href="http://xorg.freedesktop.org/releases/individual/proto/">dri2proto</a> version 1.99.3 or later <li>Linux 2.6.28 <li><a href="http://dri.freedesktop.org/libdrm/" target="_parent">libDRM</a> -version 2.4.3 or later +version 2.4.15 or later <li>Xorg server version 1.5 or later </ul> </p> @@ -352,19 +352,10 @@ by -debug for debug builds. </p> <p> -The sample programs are built seperately. To build them do -<pre> - scons -C progs -</pre> -And the build output will be placed in progs/build/... -</p> - -<p> To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do </p> <pre> scons platform=windows toolchain=crossmingw machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi - scons -C progs platform=windows toolchain=crossmingw machine=x86 -k </pre> <p> This will create: diff --git a/docs/libGL.txt b/docs/libGL.txt new file mode 100644 index 00000000000..cb988404370 --- /dev/null +++ b/docs/libGL.txt @@ -0,0 +1,197 @@ + + + +Introduction +------------ + +This document describes the implementation of the XFree86 4.0 libGL.so +library defined by the Linux/OpenGL Base specification found at +http://reality.sgi.com/opengl/linux/linuxbase.html. + +The documentation is divided into two sections: + User's Guide + Driver Developer's Guide + +Author: Brian Paul ([email protected]) +Date: February 2000 + + + +User's Guide +------------ + +Using libGL.so + +The libGL.so library defines the gl- and glX-prefixed functions needed to +run OpenGL programs. OpenGL client applications should link with the +-lGL option to use it. + +libGL.so serves two primary functions: GLX protocol generation for indirect +rendering and loading/management of hardware drivers for direct rendering. + +When libGL.so initializes itself it uses the DRI to determine the +appropriate hardware driver for each screen on the local X display. +The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/ +directory. Drivers are named with the convention <name>_dri.so where +<name> is a driver such as "tdfx", "i810", "gamma", etc. + +The LIBGL_DRIVERS_DIR environment variable may be used to specify a +different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/. +This environment variable is ignored in setuid programs for security +reasons. + +When libGL.so is unable to locate appropriate hardware drivers it will +fall back to using indirect GLX rendering. + +To aid in solving problems, libGL.so will print diagnostic messages to +stderr if the LIBGL_DEBUG environment variable is defined. + +libGL.so is thread safe. The overhead of thread safety for common, +single-thread clients is negligible. However, the overhead of thread +safety for multi-threaded clients is significant. Each GL API call +requires two calls to pthread_get_specific() which can noticably +impact performance. Warning: libGL.so is thread safe but individual +DRI drivers may not be. Please consult the documentation for a driver +to learn if it is thread safe. + + + +Indirect Rendering + +You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT +environment variable. Hardware acceleration will not be used. + + + +libGL.so Extensibility + +libGL.so is designed to be extended without upgrading. That is, +drivers may install new OpenGL extension functions into libGL.so +without requiring libGL.so to be replaced. Clients of libGL.so should +use the glXGetProcAddressEXT() function to obtain the address of +functions by name. For more details of GLX_ARB_get_proc_address see +http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec + +libGL.so is also designed with flexibility such that it may be used +with many generations of hardware drivers to come. + + + + +Driver Developer's Guide +------------------------ + +This section describes the requirements to make an XFree86 4.0 +libGL.so-compatible hardware driver. It is not intended for end +users of libGL.so. + + +XFree86 source files + +libGL.so is built inside XFree86 with sources found in xc/lib/GL/. +Specifically, libGL.so is built from: + + xc/lib/GL/glx/*.c + xc/lib/dri/XF86dri.c + xc/lib/dri/dri_glx.c + xc/lib/GL/mesa/src/glapi.c + xc/lib/GL/mesa/src/glapitemp.h + xc/lib/GL/mesa/src/glapitable.h + xc/lib/GL/mesa/src/glapioffsets.h + xc/lib/GL/mesa/src/glapinoop.c + xc/lib/GL/mesa/src/glheader.h + xc/lib/GL/mesa/src/glthread.c + xc/lib/GL/mesa/src/glthread.h + xc/lib/GL/mesa/src/X86/glapi_x86.S + xc/lib/GL/mesa/src/X86/assyntax.h + +Understand that the mesa/src/gl*.[ch] files are not tied to Mesa. They +have no dependencies on the rest of Mesa and are designed to be reusable +in a number of projects. + +The glapi_x86.X and assyntax.h files implement x86-optimized dispatch +of GL functions. They are not required; C-based dispatch can be used +instead, with a slight performance penalty. + + + +Driver loading and binding + +When libGL.so initializes itself (via the __glXInitialize function) a +call is made to driCreateDisplay(). This function uses DRI facilities +to determine the driver file appropriate for each screen on the local +display. Each screen's driver is then opened with dlopen() and asked +for its __driCreateScreen() function. The pointers to the __driCreateScreen() +functions are kept in an array, indexed by screen number, in the +__DRIdisplayRec struct. + +When a driver's __driCreateScreen() function is called, it must initialize +a __DRIscreenRec struct. This struct acts as the root of a tree of +function pointers which are called to create and destroy contexts and +drawables and perform all the operations needed by the GLX interface. +See the xc/lib/GL/glx/glxclient.h file for details. + + + +Dynamic Extension Function Registration + +In order to provide forward compatibility with future drivers, libGL.so +allows drivers to register new OpenGL extension functions which weren't +known when libGL.so was built. + +The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called +as soon as libGL.so is loaded. This is done with gcc's constructor +attribute. This mechanism will likely have to be changed for other compilers. + +register_extensions() loops over all local displays and screens, determines +the DRI driver for each, and calls the driver's __driRegisterExtensions() +function, if present. + +The __driRegisterExtensions() function can add new entrypoints to libGL +by calling: + + GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset) + +The parameters are the name of the function (such as "glFoobarEXT") and the +offset of the dispatch slot in the API dispatch table. The return value +indicates success (GL_TRUE) or failure (GL_FALSE). + +_glapi_add_entrypoint() will synthesize entrypoint code in assembly +language. Assembly languages is required since parameter passing +can't be handled correctly using a C-based solution. + +The address of the new entrypoint is obtained by calling the +glXGetProcAddressARB() function. + +The dispatch offset number MUST be a number allocated by SGI in the same +manner in which new GL_* constants are allocated. Using an arbitrary +offset number will result in many problems. + + + +Dispatch Management + +When a GL context is made current, the driver must install its dispatch +table as the current dispatch table. This is done by calling + + void _glapi_set_dispatch(struct _glapi_table *dispatch); + +This will install the named dispatch table for the calling thread. +The current dispatch table for a thread can be obtained by calling + + struct _glapi_table *_glapi_get_dispatch(void); + +For higher performance in the common single-thread case, the global +variable _glapi_Dispatch will point to the current dispatch table. +This variable will be NULL when in multi-thread mode. + + + +Context Management + +libGL.so uses the XFree86 xthreads package to manage a thread-specific +current context pointer. See __glXGet/SetCurrentContext() in glext.c + +Drivers may use the _glapi_set/get_context() functions to maintain +a private thread-specific context pointer. + diff --git a/docs/news.html b/docs/news.html index 93da56a5c33..0a0be715c1b 100644 --- a/docs/news.html +++ b/docs/news.html @@ -10,6 +10,17 @@ <H1>News</H1> +<h2>December 21, 2009</h2> +<p> +<a href="relnotes-7.6.1.html">Mesa 7.6.1</a> is released. This is a bug-fix +release fixing issues found in the 7.6 release. +</p> +<p> +Also, <a href="relnotes-7.7.html">Mesa 7.7</a> is released. This is a new +development release. +</p> + + <h2>September 28, 2009</h2> <p> <a href="relnotes-7.6.html">Mesa 7.6</a> is released. This is a new feature diff --git a/docs/relnotes-7.6.1.html b/docs/relnotes-7.6.1.html index 52a4728133e..1d0ecd2ac09 100644 --- a/docs/relnotes-7.6.1.html +++ b/docs/relnotes-7.6.1.html @@ -8,7 +8,7 @@ <body bgcolor="#eeeeee"> -<H1>Mesa 7.6.1 Release Notes, (date tbd)</H1> +<H1>Mesa 7.6.1 Release Notes, 21 December 2009</H1> <p> Mesa 7.6.1 is a bug-fix release fixing issues since version 7.6. @@ -26,12 +26,23 @@ for DRI hardware acceleration. <h2>MD5 checksums</h2> <pre> -tbd +e80fabad2e3eb7990adae773d6aeacba MesaLib-7.6.1.tar.gz +7db4617e9e10ad3aca1b64339fd71b7d MesaLib-7.6.1.tar.bz2 +dd3275dbf9833480d2e92d0c69b22abd MesaLib-7.6.1.zip +f7fdcfe3c0f363e571c60f02f74368fb MesaDemos-7.6.1.tar.gz +a4226f06732a02556fcf6be290b86dff MesaDemos-7.6.1.tar.bz2 +849425f356bd940726cebedfa79de176 MesaDemos-7.6.1.zip +d40cc7c5e337a85b674e27a8e494f52f MesaGLUT-7.6.1.tar.gz +ca9aecb91f05b1da9fd7d5eeb19d47d7 MesaGLUT-7.6.1.tar.bz2 +23fad8398004c977a1d8953079b72ca6 MesaGLUT-7.6.1.zip </pre> <h2>New features</h2> <ul> +<li>Upgraded GL/glext.h to version 56, GL/glxext.h to version 25, + GL/wglext.h to version 17 +<li>New 3D driver, r600, for Radeon R6xx, R7xx hardware </ul> @@ -43,7 +54,27 @@ tbd <li>Fixed default texture binding bug when a bound texture was deleted. <li>r300: Work around an issue with very large fragment programs on R500. <li>Fake glXQueryDrawable() didn't return good values (bug 24320) +<li>Fixed AUX buffer breakage (bug 24426). +<li>Fixed locale-dependent float parsing bug in GLSL compiler (bug 24531) +<li>Fixed Gallium Cell driver compilation failure. +<li>Fixed glGetTexLevelParameter(GL_TEXTURE_INTERNAL_FORMAT) query so that + it returns the actual compressed format chosen. +<li>Fixed glBitmap bugs in Intel drivers. +<li>Fixed a number of Microsoft Visual Studio compilation problems. +<li>Fixed clipping / provoking vertex bugs in i965 driver. +<li>Assorted build fixes for AIX. +<li>Endianness fixes for the DRI swrast driver (bug 22767).</li> +<li>Point sprite fixes for i915/945 driver. +<li>Fixed assorted memory leaks (usually on error paths) +<li>Fixed some GLSL compiler bugs (ex: 25579) +<li>Assorted build fixes for BlueGene </ul> +<h2>Changes</h2> +<ul> +<li>Removed old VC6, VC7 project files for Windows +</ul> + + </body> </html> diff --git a/docs/relnotes-7.7.1.html b/docs/relnotes-7.7.1.html new file mode 100644 index 00000000000..61a11675749 --- /dev/null +++ b/docs/relnotes-7.7.1.html @@ -0,0 +1,48 @@ +<HTML> + +<TITLE>Mesa Release Notes</TITLE> + +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.7.1 Release Notes / date tbd</H1> + +<p> +Mesa 7.7.1 is a bug-fix release. +</p> +<p> +Mesa 7.7.1 implements the OpenGL 2.1 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 2.1. +</p> +<p> +See the <a href="install.html">Compiling/Installing page</a> for prerequisites +for DRI hardware acceleration. +</p> + + +<h2>MD5 checksums</h2> +<pre> +tbd +</pre> + + +<h2>New features</h2> +<ul> +<li>tbd +</ul> + + +<h2>Bug fixes</h2> +<ul> +<li>Assorted fixes to VMware SVGA gallium driver. +<li>Fixed broken blending to multiple color buffers in swrast driver. +<li>Allocate constants more tightly in GL_ARB_vertex/fragment parser. +</ul> + + +</body> +</html> diff --git a/docs/relnotes-7.7.html b/docs/relnotes-7.7.html index 856b8fae3d7..c1ed6546135 100644 --- a/docs/relnotes-7.7.html +++ b/docs/relnotes-7.7.html @@ -8,7 +8,7 @@ <body bgcolor="#eeeeee"> -<H1>Mesa 7.7 Release Notes / date TBD</H1> +<H1>Mesa 7.7 Release Notes / 21 December 2009</H1> <p> Mesa 7.7 is a new development release. @@ -28,12 +28,23 @@ for DRI hardware acceleration. <h2>MD5 checksums</h2> <pre> -tbd +395c9516edf1ad54b0934d8db15557bf MesaLib-7.7.tar.gz +e3fa64a1508bc23dd9de9dd2cea7cfb1 MesaLib-7.7.tar.bz2 +e54903eb5e49c3969821fa16b32da245 MesaLib-7.7.zip +53b5b6f78e55de170d43c98cb6aaab7e MesaDemos-7.7.tar.gz +6fd616b27b9826d0faa23e08e05d9435 MesaDemos-7.7.tar.bz2 +240fe06159ad73d5e22c27033b66c80a MesaDemos-7.7.zip +9fe11a904b2a9d8cd06cc52bc330b716 MesaGLUT-7.7.tar.gz +e8dceed05a59a2d3c2619d7d734587e3 MesaGLUT-7.7.tar.bz2 +96af041d435349ee23ead4667ec36363 MesaGLUT-7.7.zip </pre> <h2>New features</h2> <ul> +<li>VMware "SVGA" Gallium driver. This is a Gallium3D driver which targets the + VMware virtual graphics device. It allows Linux OpenGL guest applications + to utilize the 3D graphics hardware of the host operating system. <li>GL_ARB_draw_elements_base_vertex (supported in Intel i965 and software drivers)</li> <li>GL_ARB_depth_clamp (supported in Intel i965 DRI and software drivers)</li> <li>GL_NV_depth_clamp (supported in Intel i965 DRI and software drivers)</li> @@ -44,11 +55,15 @@ tbd <h2>Bug fixes</h2> <ul> +<li>Many assorted i965 driver fixes. +<li>Many r300-gallium driver fixes; this driver is now considered unstable-quality instead of experimental-quality. </ul> <h2>Changes</h2> <ul> +<li>New Mesa texture/surface format infrastructure +<li>Removed some unused Mesa device driver hooks </ul> </body> diff --git a/docs/relnotes-7.8.html b/docs/relnotes-7.8.html new file mode 100644 index 00000000000..717b96282c4 --- /dev/null +++ b/docs/relnotes-7.8.html @@ -0,0 +1,54 @@ +<HTML> + +<TITLE>Mesa Release Notes</TITLE> + +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.8 Release Notes / date TBD</H1> + +<p> +Mesa 7.8 is a new development release. +People who are concerned with stability and reliability should stick +with a previous release or wait for Mesa 7.8.1. +</p> +<p> +Mesa 7.8 implements the OpenGL 2.1 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 2.1. +</p> +<p> +See the <a href="install.html">Compiling/Installing page</a> for prerequisites +for DRI hardware acceleration. +</p> + + +<h2>MD5 checksums</h2> +<pre> +tbd +</pre> + + +<h2>New features</h2> +<ul> +<li>GL_NV_conditional_render extension (swrast driver only) +<li>GL_EXT_draw_buffers2 extension (swrast driver only) +</ul> + + +<h2>Bug fixes</h2> +<ul> +<li>TBD +</ul> + + +<h2>Changes</h2> +<ul> +<li>TBD +</ul> + +</body> +</html> diff --git a/docs/relnotes.html b/docs/relnotes.html index b301ee046a7..f1f95c5d3ca 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -13,6 +13,9 @@ The release notes summarize what's new or changed in each Mesa release. </p> <UL> +<<<<<<< HEAD:docs/relnotes.html +<LI><A HREF="relnotes-7.8.html">7.8 release notes</A> +<LI><A HREF="relnotes-7.7.1.html">7.7.1 release notes</A> <LI><A HREF="relnotes-7.7.html">7.7 release notes</A> <LI><A HREF="relnotes-7.6.1.html">7.6.1 release notes</A> <LI><A HREF="relnotes-7.6.html">7.6 release notes</A> diff --git a/docs/shading.html b/docs/shading.html index 77c86be3aa6..bd02335a803 100644 --- a/docs/shading.html +++ b/docs/shading.html @@ -39,7 +39,8 @@ Contents <p> The <b>MESA_GLSL</b> environment variable can be set to a comma-separated -list of keywords to control some aspects of the GLSL compiler: +list of keywords to control some aspects of the GLSL compiler and shader +execution. These are generally used for debugging. </p> <ul> <li>dump - print GLSL shader code to stdout at link time @@ -49,6 +50,12 @@ list of keywords to control some aspects of the GLSL compiler: <li>nopt - disable compiler optimizations <li>opt - force compiler optimizations <li>uniform - print message to stdout when glUniform is called +<li>nopvert - force vertex shaders to be a simple shader that just transforms + the vertex position with ftransform() and passes through the color and + texcoord[0] attributes. +<li>nopfrag - force fragment shader to be a simple shader that passes + through the color attribute. +<li>useprog - log glUseProgram calls to stderr </ul> <p> Example: export MESA_GLSL=dump,nopt |