diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ARB_color_buffer_float.txt | 4 | ||||
-rw-r--r-- | docs/GL3.txt | 12 | ||||
-rw-r--r-- | docs/MESA_agp_offset.spec | 2 | ||||
-rw-r--r-- | docs/MESA_drm_image.spec | 4 | ||||
-rw-r--r-- | docs/MESA_pack_invert.spec | 2 | ||||
-rw-r--r-- | docs/MESA_release_buffers.spec | 8 | ||||
-rw-r--r-- | docs/MESA_resize_buffers.spec | 4 | ||||
-rw-r--r-- | docs/MESA_swap_control.spec | 4 | ||||
-rw-r--r-- | docs/MESA_texture_array.spec | 8 | ||||
-rw-r--r-- | docs/MESA_texture_signed_rgba.spec | 4 | ||||
-rw-r--r-- | docs/MESA_window_pos.spec | 4 | ||||
-rw-r--r-- | docs/MESA_ycbcr_texture.spec | 4 | ||||
-rw-r--r-- | docs/WL_bind_wayland_display.spec | 8 | ||||
-rw-r--r-- | docs/contents.html | 1 | ||||
-rw-r--r-- | docs/download.html | 83 | ||||
-rw-r--r-- | docs/envvars.html | 9 | ||||
-rw-r--r-- | docs/install.html | 104 | ||||
-rw-r--r-- | docs/llvmpipe.html | 204 | ||||
-rw-r--r-- | docs/news.html | 7 | ||||
-rw-r--r-- | docs/patents.txt | 31 | ||||
-rw-r--r-- | docs/relnotes-7.10.2.html | 206 | ||||
-rw-r--r-- | docs/relnotes-7.11.html | 15 | ||||
-rw-r--r-- | docs/relnotes.html | 1 |
23 files changed, 557 insertions, 172 deletions
diff --git a/docs/ARB_color_buffer_float.txt b/docs/ARB_color_buffer_float.txt new file mode 100644 index 0000000..e501120 --- /dev/null +++ b/docs/ARB_color_buffer_float.txt @@ -0,0 +1,4 @@ +Known issues in the ARB_color_buffer_float implementation: +- Rendering to multiple render targets, some fixed-point, some floating-point, with FIXED_ONLY fragment clamping and polygon smooth enabled may write incorrect values to the fixed point buffers (depends on spec interpretation) +- For fragment programs with ARB_fog_* options, colors are clamped before fog application regardless of the fragment clamping setting (this depends on spec interpretation) + diff --git a/docs/GL3.txt b/docs/GL3.txt index ca265af..6eeb9e4 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -12,11 +12,11 @@ Feature Status GL 3.0: -GLSL changes (GL_EXT_gpu_shader4, etc) not started +GLSL 1.30 (GL_EXT_gpu_shader4, etc.) started Conditional rendering (GL_NV_conditional_render) DONE (swrast & softpipe) Map buffer subranges (GL_ARB_map_buffer_range) DONE -Clamping controls (GL_ARB_color_buffer_float) BRANCH ~mareko/mesa floating2 -Float textures, renderbuffers (GL_ARB_texture_float) BRANCH ~mareko/mesa floating2 +Clamping controls (GL_ARB_color_buffer_float) DONE +Float textures, renderbuffers (GL_ARB_texture_float) DONE (gallium r300) GL_EXT_packed_float not started GL_EXT_texture_shared_exponent not started Float depth buffers (GL_ARB_depth_buffer_float) not started @@ -45,7 +45,7 @@ Depth format cube textures 0% done GL 3.1: -GLSL 1.30 and 1.40 not started +GLSL 1.40 not started Instanced drawing (GL_ARB_draw_instanced) DONE (gallium, swrast) Buffer copying (GL_ARB_copy_buffer) DONE Primitive restart (GL_NV_primitive_restart) DONE (gallium) @@ -53,7 +53,7 @@ Primitive restart (GL_NV_primitive_restart) DONE (gallium) Texture buffer objs (GL_ARB_texture_buffer_object) not started Rectangular textures (GL_ARB_texture_rectangle) DONE Uniform buffer objs (GL_ARB_uniform_buffer_object) not started -Signed normalized textures (GL_EXT_texture_snorm) ~50% done +Signed normalized textures (GL_EXT_texture_snorm) DONE (gallium) GL 3.2: @@ -77,7 +77,7 @@ GLSL 3.30 not started GL_ARB_blend_func_extended not started GL_ARB_explicit_attrib_location DONE (swrast, i915, i965) GL_ARB_occlusion_query2 DONE (swrast, gallium) -GL_ARB_sampler_objects not started +GL_ARB_sampler_objects DONE (gallium) GL_ARB_texture_rgb10_a2ui not started GL_ARB_texture_swizzle DONE (same as EXT version) GL_ARB_timer_query DONE (only Xlib sw driver) diff --git a/docs/MESA_agp_offset.spec b/docs/MESA_agp_offset.spec index 8dcc723..06e1d90 100644 --- a/docs/MESA_agp_offset.spec +++ b/docs/MESA_agp_offset.spec @@ -67,7 +67,7 @@ Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors) On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV and freed with glXFreeMemoryNV. Sometimes it's useful to know where a block of AGP memory is located with respect to the start of the AGP - aperature. The function + aperture. The function GLuint glXGetAGPOffsetMESA( const GLvoid *pointer ) diff --git a/docs/MESA_drm_image.spec b/docs/MESA_drm_image.spec index c9853a7..198de3e 100644 --- a/docs/MESA_drm_image.spec +++ b/docs/MESA_drm_image.spec @@ -24,7 +24,7 @@ Number Dependencies - Reguires EGL 1.4 or later. This extension is written against the + Requires EGL 1.4 or later. This extension is written against the wording of the EGL 1.4 specification. EGL_KHR_base_image is required. @@ -134,7 +134,7 @@ Issues RESOLVED: The eglQueryImage function has been proposed often, but it goes against the EGLImage design. EGLImages are opaque handles to a 2D array of pixels, which can be passed between - client APIs. By referenceing an EGLImage in a client API, the + client APIs. By referencing an EGLImage in a client API, the EGLImage target (a texture, a renderbuffer or such) can be used to query the attributes of the EGLImage. We don't have a full client API for creating and querying DRM buffers, though, diff --git a/docs/MESA_pack_invert.spec b/docs/MESA_pack_invert.spec index 53d5fca..33fb3c7 100644 --- a/docs/MESA_pack_invert.spec +++ b/docs/MESA_pack_invert.spec @@ -48,7 +48,7 @@ IP Status Issues - 1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc? + 1. Should we also define UNPACK_INVERT_MESA for glDrawPixels, etc? Resolved: No, we're only concerned with pixel packing. There are other solutions for inverting images when using glDrawPixels (negative Y pixel diff --git a/docs/MESA_release_buffers.spec b/docs/MESA_release_buffers.spec index 8db9350..52d1e5a 100644 --- a/docs/MESA_release_buffers.spec +++ b/docs/MESA_release_buffers.spec @@ -31,12 +31,12 @@ Overview Mesa's implementation of GLX is entirely implemented on the client side. Therefore, Mesa cannot immediately detect when an X window or pixmap is - destroyed in order to free any ancilliary data associated with the window + destroyed in order to free any ancillary data associated with the window or pixmap. The glxMesaReleaseBuffers() function can be used to explicitly indicate - when the back color buffer, depth buffer, stencil buffer, and/or accum- - ulation buffer associated with a drawable can be freed. + when the back color buffer, depth buffer, stencil buffer, and/or accumu- + lation buffer associated with a drawable can be freed. IP Status @@ -60,7 +60,7 @@ Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); - causes all software ancilliary buffers (back buffer, depth, stencil, + causes all software ancillary buffers (back buffer, depth, stencil, accum, etc) associated with the named drawable to be immediately deallocated. True is returned if <d> is a valid Mesa GLX drawable, else False is returned. After calling glXReleaseBuffersMESA, the diff --git a/docs/MESA_resize_buffers.spec b/docs/MESA_resize_buffers.spec index 533d017..dabc7c4 100644 --- a/docs/MESA_resize_buffers.spec +++ b/docs/MESA_resize_buffers.spec @@ -35,7 +35,7 @@ Overview Mesa's glViewport command queries the current window size and updates its internal data structors accordingly. This normally works fine - since most applications call glViewport in responce to window size + since most applications call glViewport in response to window size changes. In some situations, however, the application may not call glViewport @@ -65,7 +65,7 @@ Additions to the AGL/GLX/WGL Specifications Errors - INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen + INVALID_OPERATION is generated if glResizeBuffersMESA is called between Begin and End. New State diff --git a/docs/MESA_swap_control.spec b/docs/MESA_swap_control.spec index 856978b..a002563 100644 --- a/docs/MESA_swap_control.spec +++ b/docs/MESA_swap_control.spec @@ -88,8 +88,8 @@ Additions to the GLX 1.3 Specification this is typically the time required to display both the even and odd fields of a frame of video data. - If <interval> is set to a value of 0, buffer swaps are not synchron- - ized to a video frame. The <interval> value is silently clamped to + If <interval> is set to a value of 0, buffer swaps are not synchro- + nized to a video frame. The <interval> value is silently clamped to the maximum implementation-dependent value supported before being stored. diff --git a/docs/MESA_texture_array.spec b/docs/MESA_texture_array.spec index 9dee65b..b146821 100644 --- a/docs/MESA_texture_array.spec +++ b/docs/MESA_texture_array.spec @@ -328,7 +328,7 @@ Additions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization) -- Section 3.8.10 "Texture Completeness" - Change the second paragaph (page 177) to say (spec changes identical + Change the second paragraph (page 177) to say (spec changes identical to EXT_texture_array): "For one-, two-, or three-dimensional textures and one- or @@ -443,10 +443,10 @@ Additions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization) Change second through fourth paragraphs (page 188) to say: "Let D_t be the depth texture value, in the range [0, 1]. For - texture lookups from one- and two-dimesional, rectangle, and + texture lookups from one- and two-dimensional, rectangle, and one-dimensional array targets, let R be the interpolated <r> texture coordinate, clamped to the range [0, 1]. For texture lookups - from two-dimesional array texture targets, let R be the interpolated + from two-dimensional array texture targets, let R be the interpolated <q> texture coordinate, clamped to the range [0, 1]. Then the effective texture value L_t, I_t, or A_t is computed as follows: @@ -604,7 +604,7 @@ Additions to Chapter 5 of the OpenGL 2.0 Specification (Special Functions) -- Section 5.4 "Display Lists" - Change the first paragraphi on page 242 to say (spec changes + Change the first paragraph on page 242 to say (spec changes identical to EXT_texture_array): "TexImage3D, TexImage2D, TexImage1D, Histogram, and ColorTable are diff --git a/docs/MESA_texture_signed_rgba.spec b/docs/MESA_texture_signed_rgba.spec index 49c8e9e..e3a6b59 100644 --- a/docs/MESA_texture_signed_rgba.spec +++ b/docs/MESA_texture_signed_rgba.spec @@ -44,7 +44,7 @@ Overview ARB_texture_compression_rgtc introduces some compressed red and red_green signed formats but no uncompressed ones, which might still be useful. NV_texture_shader adds signed texture formats, - but also a lot of functionality which has been superceded by fragment + but also a lot of functionality which has been superseded by fragment shaders. It is usually possible to get the same functionality using a unsigned format by doing scale and bias in a shader, but this @@ -105,7 +105,7 @@ Issues This is also different to what NV_texture_shader used. The above mapping should be considered the reference, but there is some leeway so other mappings are allowed for implementations which - cannot do this. Particulary the mapping given in NV_texture_shader or + cannot do this. Particularly the mapping given in NV_texture_shader or the standard OpenGL byte/float mapping is considered acceptable too, as might be a mapping which represents -1.0 by -128, 0.0 by 0 and 1.0 by 127 (that is, uses different scale factors for negative and positive diff --git a/docs/MESA_window_pos.spec b/docs/MESA_window_pos.spec index 4d01f18..9e81e9c 100644 --- a/docs/MESA_window_pos.spec +++ b/docs/MESA_window_pos.spec @@ -88,7 +88,7 @@ Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation) WindosPos4MESA takes four values indicating x, y, z, and w. WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only x, y, and z with w implicitly set to 1 (or only x and y with z - implicititly set to 0 and w implicitly set to 1). + implicitly set to 0 and w implicitly set to 1). WindowPosMESA operates like RasterPos except that the current modelview matrix, projection matrix and viewport parameters are ignored and the @@ -108,7 +108,7 @@ GLX Protocol Errors - INVALID_OPERATION is generated if WindowPosMESA is called betweeen + INVALID_OPERATION is generated if WindowPosMESA is called between Begin and End. New State diff --git a/docs/MESA_ycbcr_texture.spec b/docs/MESA_ycbcr_texture.spec index 0fa1f7b..6a730e8 100644 --- a/docs/MESA_ycbcr_texture.spec +++ b/docs/MESA_ycbcr_texture.spec @@ -26,7 +26,7 @@ Number Dependencies OpenGL 1.0 or later is required - This extensions is written against the OpenGL 1.4 Specification. + This extension is written against the OpenGL 1.4 Specification. NV_texture_rectangle effects the definition of this extension. Overview @@ -104,7 +104,7 @@ Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) In section 3.6.4, Rasterization of Pixel Rectangles, on page 104, - add the following to Table 3.12 (Packed pixel fiedl assignments): + add the following to Table 3.12 (Packed pixel field assignments): First Second Third Fourth Format Element Element Element Element diff --git a/docs/WL_bind_wayland_display.spec b/docs/WL_bind_wayland_display.spec index 0ff49d6..e2fde3c 100644 --- a/docs/WL_bind_wayland_display.spec +++ b/docs/WL_bind_wayland_display.spec @@ -25,7 +25,7 @@ Number Dependencies - Reguires EGL 1.4 or later. This extension is written against the + Requires EGL 1.4 or later. This extension is written against the wording of the EGL 1.4 specification. EGL_KHR_base_image is required. @@ -40,9 +40,9 @@ Overview provides a new target for eglCreateImageKHR, to create an EGLImage from a wl_buffer - Adding a implementation specific wayland interface, allows the + Adding an implementation specific wayland interface, allows the EGL implementation to define specific wayland requests and events, - needed for buffer sharing in a EGL wayland platform. + needed for buffer sharing in an EGL wayland platform. IP Status @@ -82,7 +82,7 @@ Additions to the EGL 1.4 Specification: Import a wl_buffer by calling eglCreateImageKHR with wl_buffer as EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, - and an empty attribute_list. + NULL context and an empty attribute_list. Issues diff --git a/docs/contents.html b/docs/contents.html index cf1661e..8fc2ac0 100644 --- a/docs/contents.html +++ b/docs/contents.html @@ -62,6 +62,7 @@ a:visited { <LI><A HREF="perf.html" target="MainFrame">Performance Tips</A> <LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A> <LI><A HREF="mangling.html" target="MainFrame">Function Name Mangling</A> +<LI><A href="llvmpipe.html" target="MainFrame">Gallium llvmpipe driver</A> </ul> <b>Developer Topics</b> diff --git a/docs/download.html b/docs/download.html index 3cb9423..03fa60b 100644 --- a/docs/download.html +++ b/docs/download.html @@ -21,76 +21,52 @@ When a new release is coming, release candidates (betas) may be found <p> -Mesa is distributed in several parts: +The Mesa package is named MesaLib-x.y.z.{tar.bz2, tar.gz, zip} where x.y.z +is the version. There are three types of compressed archives. </p> -<ul> -<li><b>MesaLib-x.y.z</b> - the main Mesa library source code, drivers - and documentation. -</li> -<li><b>MesaDemos-x.y.z</b> - OpenGL demonstration and test programs. - Most of the programs require GLUT (either the - <a href="http://www.opengl.org/resources/libraries/glut" - target="_parent">original GLUT by Mark Kilgard</a> or - <a href="http://freeglut.sourceforge.net" target="_parent">freeglut</a> or - <a href="http://openglut.sourceforge.net" target="_parent">OpenGLUT</a>). -</li> -<li><b>MesaGLUT-x.y.z</b> - Mark Kilgard's GLUT, easily compiled and used - with Mesa. Plus, other implementation of GLUT for DOS, OS/2, BeOS, etc. -</li> -</ul> - <p> -If you're not interested in running the demos, you'll only need the first -package. +There's also the MesaGLUT-x.y.z.{tar.bz2, tar.gz, zip} packages which +contain Mark Kilgard's GLUT library. +This is optional. +Most Linux distributions include an implementation of GLUT (such as freeglut). </p> - <p> -If you're new to this and not sure what you're doing, grab all three packages. +In the past, the Mesa demos collection was distributed as +MesaDemos-x.y.z.{tar.bz2, tar.gz, zip}. +Now, the +<a href="ftp://ftp.freedesktop.org/pub/mesa/demos/" target="_parent"> +Mesa demos</a> are distributed separately. </p> -<p> -The packages are available in .tar.gz, .tar.bz2 and .zip formats. -Other sites might offer additional package formats. -</p> <H1>Unpacking</H1> <p> -All the packages should be in the same directory prior to unpacking. +To unpack .tar.gz files: </p> - -<ul> -<li>To unpack .tar.gz files: <pre> - tar zxf MesaLib-X.Y.tar.gz - tar zxf MesaDemos-X.Y.tar.gz - tar zxf MesaGLUT-X.Y.tar.gz + tar zxf MesaLib-x.y.z.tar.gz </pre> or <pre> - gzcat MesaLib-X.Y.tar.gz | tar xf - - gzcat MesaDemos-X.Y.tar.gz | tar xf - - gzcat MesaGLUT-X.Y.tar.gz | tar xf - + gzcat MesaLib-x.y.z.tar.gz | tar xf - </pre> or <pre> - gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar - gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaDemos-X.Y.tar - gunzip MesaGLUT-X.Y.tar.gz ; tar xf MesaGLUT-X.Y.tar + gunzip MesaLib-x.y.z.tar.gz ; tar xf MesaLib-x.y.z.tar </pre> -<li>To unpack .tar.bz2 files: +<p> +To unpack .tar.bz2 files: +</p> <pre> - bunzip2 -c MesaLib-X.Y.tar.gz | tar xf - - bunzip2 -c MesaDemos-X.Y.tar.gz | tar xf - - bunzip2 -c MesaGLUT-X.Y.tar.gz | tar xf - + bunzip2 -c MesaLib-x.y.z.tar.gz | tar xf - </pre> -<li>To unpack .zip files: +<p> +To unpack .zip files: +</p> <pre> - unzip MesaLib-X.Y.zip - unzip MesaDemos-X.Y.zip - unzip MesaGLUT-X.Y.zip + unzip MesaLib-x.y.z.zip </pre> -</ul> <h1>Contents</h1> @@ -106,22 +82,13 @@ bin/ - shell scripts for making shared libraries, etc docs/ - documentation src/ - source code for libraries src/mesa - sources for the main Mesa library and device drivers +src/gallium - sources for Gallium and Gallium drivers src/glu - libGLU source code src/glx - sources for building libGL with full GLX and DRI support src/glw - Xt/Motif/OpenGL widget code </pre> -If you downloaded and unpacked the MesaDemos.X.Y package: - -<pre> -progs/demos - original Mesa demos -progs/xdemos - GLX OpenGL/Mesa demos -progs/redbook - examples from the OpenGL Programming Guide -progs/samples - examples from SGI -progs/images/ - image files -</pre> - -If you downloaded and unpacked the MesaGLUT.X.Y package: +If you downloaded and unpacked the MesaGLUT.x.y.z package: <pre> src/glut - GLUT library source code </pre> diff --git a/docs/envvars.html b/docs/envvars.html index c8be843..986d2f8 100644 --- a/docs/envvars.html +++ b/docs/envvars.html @@ -49,6 +49,15 @@ 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_EXTENSION_MAX_YEAR - The GL_EXTENSIONS string returned by Mesa is sorted +by extension year. +If this variable is set to year X, only extensions defined on or before year +X will be reported. +This is to work-around a bug in some games where the extension string is +copied into a fixed-size buffer without truncating. +If the extension string is too long, the buffer overrun can cause the game +to crash. +This is a work-around for that. <li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a> </ul> diff --git a/docs/install.html b/docs/install.html index 3962ea5..bfa3bb8 100644 --- a/docs/install.html +++ b/docs/install.html @@ -12,16 +12,16 @@ <ol> <li><a href="#unix-x11">Unix / X11</a> <ul> - <li><a href="#prereq">Prerequisites for DRI and hardware acceleration</a> + <li><a href="#prereq-general">General prerequisites for building</a> + <li><a href="#prereq-dri">Prerequisites for DRI and hardware acceleration</a> <li><a href="#autoconf">Building with autoconf</a> <li><a href="#traditional">Building with traditional Makefiles</a> <li><a href="#libs">The Libraries</a> - <li><a href="#demos">Running the demos <li><a href="#install">Installing the header and library files <li><a href="#pkg-config">Building OpenGL programs with pkg-config </ul> <li><a href="#windows">Windows</a> -<li><a href="#scons">SCons</a> +<li><a href="#scons">Building with SCons</a> <li><a href="#other">Other</a> </ol> <br> @@ -31,8 +31,22 @@ <H2>1. Unix/X11 Compilation and Installation</H1> -<a name="prereq"> -<h3>1.1 Prerequisites for DRI and hardware acceleration</h3> +<a name="prereq-general"> +<h3>1.1 General prerequisites for building</h3> + +<ul> +<li>lex / yacc - for building the GLSL compiler. +On Linux systems, flex and bison are used. +Versions 2.5.35 and 2.4.1, respectively, (or later) should work. +</li> +<li>python - Python is needed for building the Gallium components. +Version 2.6.4 or later should work. +</li> +</ul> + + +<a name="prereq-dri"> +<h3>1.2 Prerequisites for DRI and hardware acceleration</h3> <p> The following are required for DRI-based hardware acceleration with Mesa: @@ -49,7 +63,7 @@ version 2.4.15 or later <a name="autoconf"> -<h3>1.2 Building with Autoconf</h3> +<h3>1.3 Building with Autoconf</h3> <p> Mesa may be <a href="autoconf.html">built using autoconf</a>. @@ -59,7 +73,7 @@ If that fails the traditional Mesa build system is available. <a name="traditional"> -<h3>1.3 Building with traditional Makefiles</h3> +<h3>1.4 Building with traditional Makefiles</h3> <p> The traditional Mesa build system is based on a collection of pre-defined @@ -126,7 +140,7 @@ Later, if you want to rebuild for a different configuration run <a name="libs"> -<h3>1.4 The libraries</h3> +<h3>1.5 The libraries</h3> <p> When compilation has finished, look in the top-level <code>lib/</code> @@ -185,81 +199,11 @@ If you built the DRI hardware drivers, you'll also see the DRI drivers: -rwxr-xr-x 1 brian users 10997120 Jul 21 12:13 unichrome_dri.so </pre> - -<a name="demos"> -<h3>1.5 Running the demos</h3> - -<p> -If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or -obtained Mesa from CVS, the <b>progs/</b> directory will contain a -bunch of demonstration programs. -</p> - -<p> -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 lib/</b> -<br> -<b>export LD_LIBRARY_PATH=${PWD}</b> -<br> -<b>export LIBGL_DRIVERS_PATH=${PWD}</b> (if using DRI drivers) -</blockquote> - <p> -Next, change to the Mesa/demos/ directory: +If you built with Gallium support, look in lib/gallium/ for Gallium-based +versions of libGL and device drivers. </p> -<blockquote> -<b>cd ../progs/demos</b> -</blockquote> -<p> -Run a demo such as gears: -</p> -<blockquote> -<b>./gears</b> -</blockquote> - -<p> -If this doesn't work, try the <b>Mesa/progs/xdemos/glxinfo</b> program -and see that it prints the expected Mesa version number. -</p> - -<p> -If you're using Linux or a similar OS, verify that the demo program is -being linked with the proper library files: -</p> -<blockquote> -<b>ldd gears</b> -</blockquote> - -<p> -You should see something like this: -</p> -<pre> - libglut.so.3 => /home/brian/Mesa/lib/libglut.so.3 (0x40013000) - libGLU.so.1 => /home/brian/Mesa/lib/libGLU.so.1 (0x40051000) - libGL.so.1 => /home/brian/Mesa/lib/libGL.so.1 (0x400e0000) - libc.so.6 => /lib/i686/libc.so.6 (0x42000000) - libm.so.6 => /lib/i686/libm.so.6 (0x403da000) - libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403fc000) - libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x404da000) - libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404f1000) - libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40543000) - libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4054b000) - libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x405fd000) - libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40605000) - libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40613000) - /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) - libdl.so.2 => /lib/libdl.so.2 (0x40644000) - libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40647000) - libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40650000) -</pre> - -<p> -Retrace your steps if this doesn't look right. -</p> <a name="install"> diff --git a/docs/llvmpipe.html b/docs/llvmpipe.html new file mode 100644 index 0000000..28d7411 --- /dev/null +++ b/docs/llvmpipe.html @@ -0,0 +1,204 @@ +<HTML> + +<TITLE>llvmpipe</TITLE> + +<link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<H1>Introduction</H1> + +<p> +The Gallium llvmpipe driver is a software rasterizer that uses LLVM to +do runtime code generation. +Shaders, point/line/triangle rasterization and vertex processing are +implemented with LLVM IR which is translated to x86 or x86-64 machine +code. +Also, the driver is multithreaded to take advantage of multiple CPU cores +(up to 8 at this time). +It's the fastest software rasterizer for Mesa. +</p> + + +<h1>Requirements</h1> + +<dl> +<dt>An x86 or amd64 processor. 64-bit mode is preferred.</dt> +<dd> + <p> + Support for sse2 is strongly encouraged. Support for ssse3, and sse4.1 will + yield the most efficient code. The less features the CPU has the more + likely is that you ran into underperforming, buggy, or incomplete code. + </p> + <p> + See /proc/cpuinfo to know what your CPU supports. + </p> +</dd> +<dt>LLVM. Version 2.8 recommended. 2.6 or later required.</dt> +<dd> + <p> + <b>NOTE</b>: LLVM 2.8 and earlier will not work on systems that support the + Intel AVX extensions (e.g. Sandybridge). LLVM's code generator will + fail when trying to emit AVX instructions. This was fixed in LLVM 2.9. + </p> + <p> + For Linux, on a recent Debian based distribution do: + </p> +<pre> + aptitude install llvm-dev +</pre> + For a RPM-based distribution do: + </p> +<pre> + yum install llvm-devel +</pre> + + <p> + For Windows download pre-built MSVC 9.0 or MinGW binaries from + http://people.freedesktop.org/~jrfonseca/llvm/ and set the LLVM environment + variable to the extracted path. + </p> + + <p> + For MSVC there are two set of binaries: llvm-x.x-msvc32mt.7z and + llvm-x.x-msvc32mtd.7z . + </p> + + <p> + You have to set the LLVM=/path/to/llvm-x.x-msvc32mtd env var when passing + debug=yes to scons, and LLVM=/path/to/llvm-x.x-msvc32mt when building with + debug=no. This is necessary as LLVM builds as static library so the chosen + MS CRT must match. + </p> +</dd> + +<dt>scons (optional)</dt> +</dl> + + + +<h1>Building</h1> + +To build everything on Linux invoke scons as: + +<pre> + scons build=debug libgl-xlib +</pre> + +Alternatively, you can build it with GNU make, if you prefer, by invoking it as + +<pre> + make linux-llvm +</pre> + +but the rest of these instructions assume that scons is used. + +For windows is everything the except except the winsys: + +<pre> + scons build=debug libgl-gdi +</pre> + + +<h1>Using</h1> + +On Linux, building will create a drop-in alternative for libGL.so into + +<pre> + build/foo/gallium/targets/libgl-xlib/libGL.so +</pre> +or +<pre> + lib/gallium/libGL.so +</pre> + +To use it set the LD_LIBRARY_PATH environment variable accordingly. + +For performance evaluation pass debug=no to scons, and use the corresponding +lib directory without the "-debug" suffix. + +On Windows, building will create a drop-in alternative for opengl32.dll. To use +it put it in the same directory as the application. It can also be used by +replacing the native ICD driver, but it's quite an advanced usage, so if you +need to ask, don't even try it. + + +<h1>Profiling</h1> + +To profile llvmpipe you should pass the options + +<pre> + scons build=profile <same-as-before> +</pre> + +This will ensure that frame pointers are used both in C and JIT functions, and +that no tail call optimizations are done by gcc. + +To better profile JIT code you'll need to build LLVM with oprofile integration. + +<pre> + ./configure \ + --prefix=$install_dir \ + --enable-optimized \ + --disable-profiling \ + --enable-targets=host-only \ + --with-oprofile + + make -C "$build_dir" + make -C "$build_dir" install + + find "$install_dir/lib" -iname '*.a' -print0 | xargs -0 strip --strip-debug +</pre> + +The you should define + +<pre> + export LLVM=/path/to/llvm-2.6-profile +</pre> + +and rebuild. + + +<h1>Unit testing</h1> + +<p> +Building will also create several unit tests in +build/linux-???-debug/gallium/drivers/llvmpipe: +</p> + +</ul> +<li> lp_test_blend: blending +<li> lp_test_conv: SIMD vector conversion +<li> lp_test_format: pixel unpacking/packing +</ul> + +<p> +Some of this tests can output results and benchmarks to a tab-separated-file +for posterior analysis, e.g.: +</p> +<pre> + build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv +</pre> + + +<h1>Development Notes</h1> + +<ul> +<li> + When looking to this code by the first time start in lp_state_fs.c, and + then skim through the lp_bld_* functions called in there, and the comments + at the top of the lp_bld_*.c functions. +</li> +<li> + The driver-independent parts of the LLVM / Gallium code are found in + src/gallium/auxiliary/gallivm/. The filenames and function prefixes + need to be renamed from "lp_bld_" to something else though. +</li> +<li> + We use LLVM-C bindings for now. They are not documented, but follow the C++ + interfaces very closely, and appear to be complete enough for code + generation. See + http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html + for a stand-alone example. See the llvm-c/Core.h file for reference. +</li> +</ul> diff --git a/docs/news.html b/docs/news.html index 6a706ab..a6a658a 100644 --- a/docs/news.html +++ b/docs/news.html @@ -11,6 +11,13 @@ <H1>News</H1> +<h2>April 6, 2011</h2> + +<p> +<a href="relnotes-7.10.2.html">Mesa 7.10.2</a> is released. This is a bug +fix release release. +</p> + <h2>March 2, 2011</h2> <p> diff --git a/docs/patents.txt b/docs/patents.txt new file mode 100644 index 0000000..3834e25 --- /dev/null +++ b/docs/patents.txt @@ -0,0 +1,31 @@ +ARB_texture_float: + + Silicon Graphics, Inc. owns US Patent #6,650,327, issued November 18, + 2003 [1]. + + SGI believes this patent contains necessary IP for graphics systems + implementing floating point rasterization and floating point + framebuffer capabilities described in ARB_texture_float extension, and + will discuss licensing on RAND terms, on an individual basis with + companies wishing to use this IP in the context of conformant OpenGL + implementations [2]. + + The source code to implement ARB_texture_float extension is included + and can be toggled on at compile time, for those who purchased a + license from SGI, or are in a country where the patent does not apply, + etc. + + The software is provided "as is", without warranty of any kind, express + or implied, including but not limited to the warranties of + merchantability, fitness for a particular purpose and noninfringement. + In no event shall the authors or copyright holders be liable for any + claim, damages or other liability, whether in an action of contract, + tort or otherwise, arising from, out of or in connection with the + software or the use or other dealings in the software. + + You should contact a lawyer or SGI's legal department if you want to + enable this extension. + + +[1] http://www.google.com/patents/about?id=mIIOAAAAEBAJ&dq=6650327 +[2] http://www.opengl.org/registry/specs/ARB/texture_float.txt diff --git a/docs/relnotes-7.10.2.html b/docs/relnotes-7.10.2.html new file mode 100644 index 0000000..55b6794 --- /dev/null +++ b/docs/relnotes-7.10.2.html @@ -0,0 +1,206 @@ +<HTML> + +<head> +<TITLE>Mesa Release Notes</TITLE> +<link rel="stylesheet" type="text/css" href="mesa.css"> +<meta http-equiv="content-type" content="text/html; charset=utf-8" /> +</head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.10.2 Release Notes / April 6, 2011</H1> + +<p> +Mesa 7.10.2 is a bug fix release which fixes bugs found since the 7.10 release. +</p> +<p> +Mesa 7.10.2 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> +2f9f444265534a2cfd9a99d1a8291089 MesaLib-7.10.2.tar.gz +f5de82852f1243f42cc004039e10b771 MesaLib-7.10.2.tar.bz2 +47836e37bab6fcafe3ac90c9544ba0e9 MesaLib-7.10.2.zip +175120325828f313621cc5bc6c504803 MesaGLUT-7.10.2.tar.gz +8c71d273f5f8d6c5eda4ffc39e0fe03e MesaGLUT-7.10.2.tar.bz2 +03036c8efe7b791a90fa0f2c41b43f43 MesaGLUT-7.10.2.zip +</pre> + + +<h2>New features</h2> +<p>None.</p> + +<h2>Bug fixes</h2> +<p>This list is likely incomplete.</p> +<ul> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29172">Bug 29172</a> - Arrandale - Pill Popper Pops Pills</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31159">Bug 31159</a> - shadow problem in 0ad game</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32688">Bug 32688</a> - [RADEON:KMS:R300G] some games have a wireframe or outline visible</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32949">Bug 32949</a> - [glsl wine] Need for Speed renders incorrectly with GLSL enabled</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34203">Bug 34203</a> - [GLSL] fail to call long chains across shaders</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34376">Bug 34376</a> - [GLSL] allowing assignment to unsized array + <ul> + <li>The commit message incorrectly + lists <a href="https://bugs.freedesktop.org/show_bug.cgi?id=34367">bug + 34367</a>.</li> + </ul> +</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34370">Bug 34370</a> - [GLSL] "i<5 && i<4" in for loop fails</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34374">Bug 34374</a> - [GLSL] fail to redeclare an array using initializer</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35073">Bug 35073</a> - [GM45] Alpha test is broken when rendering to FBO with no color attachment</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35483">Bug 35483</a> - util_blit_pixels_writemask: crash in line 322 of src/gallium/auxiliary/util/u_blit.c</li> + +<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> --> + +</ul> + + +<h2>Changes</h2> +<p>The full set of changes can be viewed by using the following GIT command:</p> + +<pre> + git log mesa-7.10.1..mesa-7.10.2 +</pre> + +<p><em>Note:</em> Reverted commits and the reverts are not included in this list.</p> + +<p>Alex Deucher (2): +<ul> + <li>r600c: add new ontario pci ids</li> + <li>r600g: add some additional ontario pci ids</li> +</ul></p> + +<p>Benjamin Franzke (1): +<ul> + <li>st/dri: Fix surfaceless gl using contexts with previous bound surfaces</li> +</ul></p> + +<p>Brian Paul (9): +<ul> + <li>docs: pull 7.9.2 release notes into 7.10 branch</li> + <li>docs: update news.html with 7.10.1 and 7.9.2 releases</li> + <li>docs: fill in 7.10.1 release data</li> + <li>docs: add, fix release notes links</li> + <li>docs: update info about Mesa packaging/contents</li> + <li>docs: update prerequisites, remove old demo info</li> + <li>mesa: Guard against null pointer deref in fbo validation</li> + <li>st/mesa: Apply LOD bias from correct texture unit</li> + <li>glsl: silence warning in printf() with a cast</li> +</ul></p> + +<p>Chad Versace (1): +<ul> + <li>i965: Fix tex_swizzle when depth mode is GL_RED</li> +</ul></p> + +<p>Dave Airlie (1): +<ul> + <li>r600: don't close fd on failed load</li> +</ul></p> + +<p>Eric Anholt (2): +<ul> + <li>i965: Apply a workaround for the Ironlake "vertex flashing".</li> + <li>i965: Fix alpha testing when there is no color buffer in the FBO.</li> +</ul></p> + +<p>Fabian Bieler (1): +<ul> + <li>st/mesa: Apply LOD from texture object</li> +</ul></p> + +<p>Henri Verbeet (1): +<ul> + <li>st/mesa: Validate state before doing blits.</li> +</ul></p> + +<p>Ian Romanick (13): +<ul> + <li>docs: Add 7.10.1 md5sums</li> + <li>glsl: Refactor AST-to-HIR code handling variable initializers</li> + <li>glsl: Refactor AST-to-HIR code handling variable redeclarations</li> + <li>glsl: Process redeclarations before initializers</li> + <li>glsl: Function signatures cannot have NULL return type</li> + <li>glsl: Add several function / call related validations</li> + <li>linker: Add imported functions to the linked IR</li> + <li>glsl: Use insert_before for lists instead of open coding it</li> + <li>glsl: Only allow unsized array assignment in an initializer</li> + <li>glcpp: Refresh autogenerated lexer files</li> + <li>docs: Initial bits of 7.10.2 release notes</li> + <li>mesa: set version string to 7.10.2</li> + <li>mesa: Remove nonexistant files from _FILES lists</li> +</ul></p> + +<p>Jerome Glisse (1): +<ul> + <li>r600g: move user fence into base radeon structure</li> +</ul></p> + +<p>José Fonseca (2): +<ul> + <li>mesa: Fix typo glGet*v(GL_TEXTURE_COORD_ARRAY_*).</li> + <li>mesa: More glGet* fixes.</li> +</ul></p> + +<p>Kenneth Graunke (4): +<ul> + <li>glcpp: Rework lexer to use a SKIP state rather than REJECT.</li> + <li>glcpp: Remove trailing contexts from #if rules.</li> + <li>i965/fs: Fix linear gl_Color interpolation on pre-gen6 hardware.</li> + <li>glsl: Accept precision qualifiers on sampler types, but only in ES.</li> +</ul></p> + +<p>Marek Olšák (15): +<ul> + <li>st/mesa: fix crash when DrawBuffer->_ColorDrawBuffers[0] is NULL</li> + <li>st/mesa: fail to alloc a renderbuffer if st_choose_renderbuffer_format fails</li> + <li>r300/compiler: fix the saturate modifier when applied to TEX instructions</li> + <li>r300/compiler: fix translating the src negate bits in pair_translate</li> + <li>r300/compiler: Abs doesn't cancel Negate (in the conversion to native swizzles)</li> + <li>r300/compiler: TEX instructions don't support negation on source arguments</li> + <li>r300/compiler: do not set TEX_IGNORE_UNCOVERED on r500</li> + <li>r300/compiler: saturate Z before the shadow comparison</li> + <li>r300/compiler: fix equal and notequal shadow compare functions</li> + <li>r300/compiler: remove unused variables</li> + <li>st/mesa: fix crash when using both user and vbo buffers with the same stride</li> + <li>r300g: fix alpha-test with no colorbuffer</li> + <li>r300g: tell the GLSL compiler to lower the continue opcode</li> + <li>r300/compiler: propagate SaturateMode down to the result of shadow comparison</li> + <li>r300/compiler: apply the texture swizzle to shadow pass and fail values too</li> +</ul></p> + +<p>Michel Dänzer (1): +<ul> + <li>Use proper source row stride when getting depth/stencil texels.</li> +</ul></p> + +<p>Tom Stellard (4): +<ul> + <li>r300/compiler: Use a 4-bit writemask in pair instructions</li> + <li>prog_optimize: Fix reallocating registers for shaders with loops</li> + <li>r300/compiler: Fix vertex shader MAD instructions with constant swizzles</li> + <li>r300/compiler: Don't try to convert RGB to Alpha in full instructions</li> +</ul></p> + +</body> +</html> diff --git a/docs/relnotes-7.11.html b/docs/relnotes-7.11.html index 277339b..2bd126c 100644 --- a/docs/relnotes-7.11.html +++ b/docs/relnotes-7.11.html @@ -36,11 +36,22 @@ tbd <h2>New features</h2> <ul> +<li>GL_ARB_color_buffer_float (gallium drivers, i965) +<li>GL_ARB_draw_buffers_blend (gallium) <li>GL_ARB_draw_instanced extension (gallium drivers, swrast) <li>GL_ARB_instanced_arrays extension (gallium drivers) -<li>GL_ARB_texture_compression_rgtc (gallium r600, swrast) -<li>GL_ARB_draw_buffers_blend (gallium) +<li>GL_ARB_occlusion_query2 (gallium drivers, swrast) +<li>GL_ARB_sampler_objects (gallium drivers) +<li>GL_ARB_texture_compression_rgtc (gallium drivers, swrast) +<li>GL_ARB_texture_float (gallium, i965) +<li>GL_EXT_texture_compression_latc (gallium drivers, swrast) +<li>GL_EXT_texture_compression_rgtc (gallium drivers, swrast) <li>GL_EXT_texture_sRGB_decode (gallium drivers, swrast, i965) +<li>GL_EXT_texture_snorm (gallium drivers) +<li>GL_ATI_draw_buffers (all drivers) +<li>GL_ATI_texture_compression_3dc (gallium drivers, swrast) +<li>GL_ATI_texture_float (gallium, i965) +<li>GL_NV_texture_barrier (gallium drivers) </ul> diff --git a/docs/relnotes.html b/docs/relnotes.html index b0ca3ef..c1a7ab7 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -14,6 +14,7 @@ The release notes summarize what's new or changed in each Mesa release. <UL> <LI><A HREF="relnotes-7.11.html">7.11 release notes</A> +<LI><A HREF="relnotes-7.10.2.html">7.10.2 release notes</A> <LI><A HREF="relnotes-7.10.1.html">7.10.1 release notes</A> <LI><A HREF="relnotes-7.10.html">7.10 release notes</A> <LI><A HREF="relnotes-7.9.2.html">7.9.2 release notes</A> |