<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.3 Release Notes / June 13, 2011</H1>

<p>
Mesa 7.10.3 is a bug fix release which fixes bugs found since the 7.10.2 release.
</p>
<p>
Mesa 7.10.3 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>
<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=29162">Bug 29162</a> - mesa/darwin is severly broken</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31590">Bug 31590</a> - Black space between colors on mole hill example</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32395">Bug 32395</a> - [glsl] Incorrect code generation for shadow2DProj() with bias</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32564">Bug 32564</a> - [llvmpipe] prog: Unknown command line argument '-disable-mmx'. Try: 'prog -help' with llvm-2.9svn</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32835">Bug 32835</a> - [glsl] recursive #define results in infinite stack recursion</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33303">Bug 33303</a> - [glsl] ir_constant_expression.cpp:72: virtual ir_constant* ir_expression::constant_expression_value(): Assertion `op[0]->type->base_type == op[1]->type->base_type' failed.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33314">Bug 33314</a> - [glsl] ir_constant_expression.cpp:122: virtual ir_constant* ir_expression::constant_expression_value(): Assertion `op[0]->type->base_type == GLSL_TYPE_BOOL' failed.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33512">Bug 33512</a> - [SNB] case ogles2conform/GL/gl_FragCoord/gl_FragCoord_xy_frag.test and gl_FragCoord_w_frag.test fail</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34280">Bug 34280</a> - r200 mesa-7.10 font distortion</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34321">Bug 34321</a> - The ARB_fragment_program subset of ARB_draw_buffers not implemented</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35603">Bug 35603</a> - GLSL compiler freezes compiling shaders</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36173">Bug 36173</a> - struct renderbuffer's 'format' field never set when using FBO</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36238">Bug 36238</a> - Mesa release files don't contain scons control files</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36410">Bug 36410</a> - [SNB] Rendering errors in 3DMMES subtest taiji</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36527">Bug 36527</a> - [wine] Wolfenstein: Failed to translate rgb instruction.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36651">Bug 36651</a> - mesa requires bison and flex to build but configure does not check for them</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=36738">Bug 36738</a> - Openarena crash with r300g, swrastg + llvm &gt; 2.8</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37648">Bug 37648</a> - Logic error in mesa/main/teximage.c:texsubimage</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=37739">Bug 37739</a> - Color clear of FBO without color buffer crashes</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.2..mesa-7.10.3
</pre>

<p>Alan Hourihane (1):
<ul>
  <li>Check for out of memory when creating fence</li>
</ul></p>

<p>Alex Buell (1):
<ul>
  <li>configure: bump LIBDRM_REQUIRED to 2.4.24</li>
</ul></p>

<p>Alex Deucher (2):
<ul>
  <li>r600c: add new pci ids</li>
  <li>r600g: add new pci ids</li>
</ul></p>

<p>Brian Paul (19):
<ul>
  <li>docs: add link to 7.10.2 release notes</li>
  <li>scons: remove dangling reference to state_trackers/python/SConscript</li>
  <li>Makefile: add missing Scons files</li>
  <li>llvmpipe: document issue with LLVM 2.8 and earlier with AVX</li>
  <li>docs: replace llvmpipe/README with docs/llvmpipe.html</li>
  <li>glsl: add static qualifier to silence warning</li>
  <li>glsl: add cast to silence signed/unsigned comparison warning</li>
  <li>mesa: s/height/depth/ in texsubimage()</li>
  <li>mesa: fix void pointer arithmetic warnings</li>
  <li>mesa: add some missing GLAPIENTRY keywords</li>
  <li>mesa: check that flex/bison are installed</li>
  <li>st/mesa: fix incorrect texture level/face/slice accesses</li>
  <li>draw: fix edge flag handling in clipper (for unfilled tris/quads/polygons)</li>
  <li>vbo: check array indexes to prevent negative indexing</li>
  <li>vbo: remove node-&gt;count &gt; 0 test in vbo_save_playback_vertex_list()</li>
  <li>st/mesa: fix software accum buffer format bug</li>
  <li>mesa: add include/c99/inttypes.h include/c99/stdbool.h include/c99/stdint.h files to tarballs</li>
  <li>docs: 7.10.3 release notes skeleton file, links</li>
  <li>mesa: bump version to 7.10.3</li>
</ul></p>

<p>Carl Worth (2):
<ul>
  <li>glcpp: Simplify calling convention of parser's active_list functions</li>
  <li>glcpp: Fix attempts to expand recursive macros infinitely (bug #32835).</li>
</ul></p>

<p>Dave Airlie (1):
<ul>
  <li>st/mesa: fix compressed mipmap generation.</li>
</ul></p>

<p>Eric Anholt (19):
<ul>
  <li>i965: Fix the VS thread limits for GT1, and clarify the WM limits on both.</li>
  <li>glsl: Avoid cascading errors when looking for a scalar boolean and failing.</li>
  <li>glsl: Semantically check the RHS of `&amp;&amp;' even when short-circuiting.</li>
  <li>glsl: Semantically check the RHS of `||' even when short-circuiting.</li>
  <li>glsl: When we've emitted a semantic error for ==, return a bool constant.</li>
  <li>glsl: Perform type checking on "^^" operands.</li>
  <li>intel: Use _mesa_base_tex_format for FBO texture attachments.</li>
  <li>swrast: Don't assert against glReadPixels of GL_RED and GL_RG.</li>
  <li>mesa: Add a gl_renderbuffer.RowStride field like textures have.</li>
  <li>mesa: Add a function to set up the default renderbuffer accessors.</li>
  <li>intel: Use Mesa core's renderbuffer accessors for depth.</li>
  <li>mesa: Use _mesa_get_format_bytes to refactor out the RB get_pointer_*</li>
  <li>mesa: Use _mesa_get_format_bytes to refactor out the RB get_row_*</li>
  <li>mesa: Add renderbuffer accessors for R8/RG88/R16/RG1616.</li>
  <li>swrast: Don't try to adjust_colors for &lt8bpc when handling R16, RG1616.</li>
  <li>intel: Use mesa core's R8, RG88, R16, RG1616 RB accessors.</li>
  <li>Revert "intel: Add spans code for the ARB_texture_rg support."</li>
  <li>mesa: Add support for the ARB_fragment_program part of ARB_draw_buffers.</li>
  <li>mesa: Add support for OPTION ATI_draw_buffers to ARB_fp.</li>
</ul></p>

<p>Hans de Goede (1):
<ul>
  <li>texstore: fix regression stricter check for memcpy path for unorm88 and unorm1616</li>
</ul></p>

<p>Henri Verbeet (3):
<ul>
  <li>mesa: Also update the color draw buffer if it's explicitly set to GL_NONE.</li>
  <li>glx: Destroy dri2Hash on DRI2 display destruction.</li>
  <li>glx: Only remove the glx_display from the list after it's destroyed.</li>
</ul></p>

<p>Ian Romanick (9):
<ul>
  <li>docs: Add 7.10.2 md5sums</li>
  <li>glsl: Fix off-by-one error setting max_array_access for non-constant indexing</li>
  <li>ir_to_mesa: Handle shadow compare w/projection and LOD bias correctly</li>
  <li>intel: Fix ROUND_DOWN_TO macro</li>
  <li>glsl: Regenerate compiler and glcpp files from cherry picks</li>
  <li>i965: Remove hint_gs_always and resulting dead code</li>
  <li>mesa: Don't try to clear a NULL renderbuffer</li>
  <li>mesa: Ignore blits to/from missing buffers</li>
  <li>docs: Add list of bugs fixed in 7.10.3 release</li>
</ul></p>

<p>Jeremy Huddleston (18):
<ul>
  <li>apple: Update GL specs</li>
  <li>apple: Rename glcontextmodes.[ch] to glxconfig.[ch]</li>
  <li>apple: Rename __GLcontextModes to struct glx_config</li>
  <li>apple: Rename GLXcontext</li>
  <li>apple: Re-add driContext and do_destroy</li>
  <li>apple: Rename _gl_context_modes_find_visual to glx_config_find_visual</li>
  <li>apple: Rename GLXcontext</li>
  <li>apple: Change from XExtDisplayInfo to struct glx_display</li>
  <li>apple: ifdef out come glapi-foo on darwin</li>
  <li>glx: Dead code removal</li>
  <li>apple: Build darwin using applegl rather than indirect</li>
  <li>apple: Fix build failures in applegl_glx.c</li>
  <li>darwin: Define GALLIUM_DRIVERS_DIRS in darwin config</li>
  <li>apple: Package applegl source into MesaLib tarball</li>
  <li>darwin: Set VG_LIB_{NAME,GLOB} to fix make install</li>
  <li>darwin: Don't link against libGL when building libOSMesa</li>
  <li>darwin: Fix VG_LIB_GLOB to also match the unversioned symlink</li>
  <li>osmesa: Fix missing symbols when GLX_INDIRECT_RENDERING is defined.</li>
</ul></p>

<p>José Fonseca (13):
<ul>
  <li>llvmpipe: Update readme.</li>
  <li>mesa: GL_PROVOKING_VERTEX_EXT is a GLenum, not GLboolean.</li>
  <li>mesa: Fix GetVertexAttrib* inside display lists.</li>
  <li>draw: Fix draw_variant_output::format's type.</li>
  <li>gallivm: Tell LLVM to not assume a 16-byte aligned stack on x86.</li>
  <li>gallivm: Fix for dynamically linked LLVM 2.8 library.</li>
  <li>st/wgl: Adjust the pbuffer invisible window size.</li>
  <li>st/wgl: Fix debug output format specifiers of stw_framebuffer_get_size().</li>
  <li>st/wgl: Prevent spurious framebuffer sizes when the window is minimized.</li>
  <li>st/wgl: Cope with zero width/height windows.</li>
  <li>st/wgl: Allow to create pbuffers bigger than the desktop.</li>
  <li>st/wgl: Remove buggy assertion.</li>
  <li>wgl: Don't hold on to user supplied HDC.</li>
</ul></p>

<p>Kenneth Graunke (10):
<ul>
  <li>i965/fs: Switch W and 1/W in Sandybridge interpolation setup.</li>
  <li>i965: Refactor Sandybridge implied move handling.</li>
  <li>i965: Resolve implied moves in brw_dp_READ_4_vs_relative.</li>
  <li>intel: Add IS_GT2 macro for recognizing Sandybridge GT2 systems.</li>
  <li>i965: Allocate the whole URB to the VS and fix calculations for Gen6.</li>
  <li>intel: Support glCopyTexImage() from ARGB8888 to XRGB8888.</li>
  <li>glsl: Fix memory error when creating the supported version string.</li>
  <li>glsl: Regenerate autogenerated file builtin_function.cpp.</li>
  <li>i965: Rename various gen6 #defines to match the documentation.</li>
  <li>i965: Never enable the GS on Gen6.</li>
</ul></p>

<p>Kostas Georgiou (1):
<ul>
  <li>r600c/g: Add pci id for FirePro 2270</li>
</ul></p>

<p>Marek Olšák (18):
<ul>
  <li>tgsi/ureg: bump the limit of immediates</li>
  <li>st/mesa: fix changing internal format via RenderbufferStorage</li>
  <li>st/mesa: GenerateMipmap should not be killed by conditional rendering</li>
  <li>swrast: BlitFramebuffer should not be killed by conditional rendering</li>
  <li>st/mesa: BlitFramebuffer should not be killed by conditional rendering</li>
  <li>st/mesa: CopyTex(Sub)Image should not be killed by conditional rendering</li>
  <li>st/mesa: conditional rendering should not kill texture decompression via blit</li>
  <li>mesa: forbid UseProgram to be called inside Begin/End</li>
  <li>mesa: UseShaderProgramEXT and Uniform* shouldn't be allowed inside Begin/End</li>
  <li>mesa: queries of non-existent FBO attachments should return INVALID_OPERATION</li>
  <li>r300g: fix draw_vbo splitting on r3xx-r4xx</li>
  <li>r300g: fix texturing with non-3D textures and wrap R mode set to sample border</li>
  <li>r300g: fix occlusion queries when depth test is disabled or zbuffer is missing</li>
  <li>r300g: clear can be killed by render condition</li>
  <li>st/mesa: remove asserts in st_texture_image_copy</li>
  <li>mesa: fix up assertion in _mesa_source_buffer_exists</li>
  <li>mesa: invalidate framebuffer if internal format of renderbuffer is changed</li>
  <li>mesa: return after invalidating renderbuffer</li>
</ul></p>

<p>Matt Turner (1):
<ul>
  <li>r300/compiler: align memory allocations to 8-bytes</li>
</ul></p>

<p>Tom Stellard (3):
<ul>
  <li>r300/compiler: Fix incorrect presubtract conversion</li>
  <li>r300/compiler: Fix dataflow analysis bug with ELSE blocks</li>
  <li>r300/compiler: Limit instructions to 3 source selects</li>
</ul></p>

<p>Vinson Lee (1):
<ul>
  <li>gallivm: Disable MMX-disabling code on llvm-2.9.</li>
</ul></p>

<p>Zou Nan hai (1):
<ul>
  <li>i965: Align interleaved URB write length to 2</li>
</ul></p>

<p>pepp (1):
<ul>
  <li>st/mesa: assign renderbuffer's format field when allocating storage</li>
</ul></p>

</body>
</html>
