Mesa 7.9.2 Release Notes / March 2, 2011
========================================

Mesa 7.9.2 is a bug fix release which fixes bugs found since the 7.9.1
release.

Mesa 7.9.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.

See the :doc:`Compiling/Installing page <../install>` for
prerequisites for DRI hardware acceleration.

MD5 checksums
-------------

::

   eb4ab8c1a03386def3ea34b1358e9cda  MesaLib-7.9.2.tar.gz
   8f6d1474912787ce13bd35f3bae9938a  MesaLib-7.9.2.tar.bz2
   427a81dd43ac97603768dc5c6af3df26  MesaLib-7.9.2.zip
   aacb8f4db997e346db40c6066942140a  MesaGLUT-7.9.2.tar.gz
   18abe6cff4fad8ad4752c7b7ab548e5d  MesaGLUT-7.9.2.tar.bz2
   3189e5732d636c71baf3d8bc23ce7b11  MesaGLUT-7.9.2.zip

New features
------------

None.

Bug fixes
---------

This list is likely incomplete.

-  Fix an off-by-one bug in a vsplit assertion.
-  Fix incorrect handling of ``layout`` qualifier with ``in``, ``out``,
   ``attribute``, and ``varying``.
-  Fix an i965 GPU hang in GLSL shaders that contain an unconditional
   ``discard`` statement.
-  Fix an i965 shader bug where the negative absolute value was
   generated instead of the absolute value of a negation.
-  Fix numerous issues handling precision qualifiers in GLSL ES.
-  Fixed a few GLX protocol encoder bugs (Julien Cristau)
-  Assorted Gallium llvmpipe driver bug fixes
-  Assorted Mesa/Gallium state tracker bug fixes
-  `Bug 26795 <https://bugs.freedesktop.org/show_bug.cgi?id=26795>`__ -
   gl_FragCoord off by one in Gallium drivers.
-  `Bug 29164 <https://bugs.freedesktop.org/show_bug.cgi?id=29164>`__ -
   [GLSL 1.20] invariant variable shouldn't be used before declaration
-  `Bug 29823 <https://bugs.freedesktop.org/show_bug.cgi?id=29823>`__ -
   GetUniform[if]v busted
-  `Bug 29927 <https://bugs.freedesktop.org/show_bug.cgi?id=29927>`__ -
   [glsl2] fail to compile shader with constructor for array of struct
   type
-  `Bug 30156 <https://bugs.freedesktop.org/show_bug.cgi?id=30156>`__ -
   [i965] After updating to Mesa 7.9, Civilization IV starts to show
   garbage
-  `Bug 31923 <https://bugs.freedesktop.org/show_bug.cgi?id=31923>`__ -
   [GLSL 1.20] allowing inconsistent centroid declaration between two
   vertex shaders
-  `Bug 31925 <https://bugs.freedesktop.org/show_bug.cgi?id=31925>`__ -
   [GLSL 1.20] "#pragma STDGL invariant(all)" fail
-  `Bug 32214 <https://bugs.freedesktop.org/show_bug.cgi?id=32214>`__ -
   [gles2]no link error happens when missing vertex shader or frag
   shader
-  `Bug 32375 <https://bugs.freedesktop.org/show_bug.cgi?id=32375>`__ -
   [gl gles2] Not able to get the attribute by function
   glGetVertexAttribfv
-  `Bug 32541 <https://bugs.freedesktop.org/show_bug.cgi?id=32541>`__ -
   Segmentation Fault while running an HDR (high dynamic range)
   rendering demo
-  `Bug 32569 <https://bugs.freedesktop.org/show_bug.cgi?id=32569>`__ -
   [gles2] glGetShaderPrecisionFormat not implemented yet
-  `Bug 32695 <https://bugs.freedesktop.org/show_bug.cgi?id=32695>`__ -
   [glsl] SIGSEGV glcpp/glcpp-parse.y:833
-  `Bug 32831 <https://bugs.freedesktop.org/show_bug.cgi?id=32831>`__ -
   [glsl] division by zero crashes GLSL compiler
-  `Bug 32910 <https://bugs.freedesktop.org/show_bug.cgi?id=32910>`__ -
   Keywords 'in' and 'out' not handled properly for GLSL 1.20 shaders
-  `Bug 33219 <https://bugs.freedesktop.org/show_bug.cgi?id=33219>`__
   -[GLSL bisected] implicit sized array triggers segfault in
   ir_to_mesa_visitor::copy_propagate
-  `Bug 33306 <https://bugs.freedesktop.org/show_bug.cgi?id=33306>`__ -
   GLSL integer division by zero crashes GLSL compiler
-  `Bug 33308 <https://bugs.freedesktop.org/show_bug.cgi?id=33308>`__
   -[glsl] ast_to_hir.cpp:3016: virtual ir_rvalue\*
   ast_jump_statement::hir(exec_list*, \_mesa_glsl_parse_state*):
   Assertion \`ret != \__null' failed.
-  `Bug 33316 <https://bugs.freedesktop.org/show_bug.cgi?id=33316>`__ -
   uniform array will be allocate one line more and initialize it when
   it was freed will abort
-  `Bug 33386 <https://bugs.freedesktop.org/show_bug.cgi?id=33386>`__ -
   Dubious assembler in read_rgba_span_x86.S
-  `Bug 33388 <https://bugs.freedesktop.org/show_bug.cgi?id=33388>`__ -
   Dubious assembler in xform4.S
-  `Bug 33433 <https://bugs.freedesktop.org/show_bug.cgi?id=33433>`__ -
   Error in x86-64 API dispatch code.
-  `Bug 33507 <https://bugs.freedesktop.org/show_bug.cgi?id=33507>`__ -
   [glsl] GLSL preprocessor modulus by zero crash
-  `Bug 33508 <https://bugs.freedesktop.org/show_bug.cgi?id=33508>`__ -
   [glsl] GLSL compiler modulus by zero crash
-  `Bug 33916 <https://bugs.freedesktop.org/show_bug.cgi?id=33916>`__ -
   Compiler accepts reserved operators % and %=
-  `Bug 34047 <https://bugs.freedesktop.org/show_bug.cgi?id=34047>`__ -
   Assert in \_tnl_import_array() when using GLfixed vertex datatypes
   with GLESv2
-  `Bug 34114 <https://bugs.freedesktop.org/show_bug.cgi?id=34114>`__ -
   Sun Studio build fails due to standard library functions not being in
   global namespace
-  `Bug 34198 <https://bugs.freedesktop.org/show_bug.cgi?id=34198>`__ -
   [GLSL] implicit sized array with index 0 used gets assertion
-  `Ubuntu bug
   691653 <https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/691653>`__
   - compiz crashes when using alt-tab (the radeon driver kills it)
-  `Meego bug 13005 <https://bugs.meego.com/show_bug.cgi?id=13005>`__ -
   Graphics GLSL issue lead to camera preview fail on Pinetrail

Changes
-------

The full set of changes can be viewed by using the following GIT
command:

::

     git log mesa-7.9.1..mesa-7.9.2

Alberto Milone (1):

-  r600c: add evergreen ARL support.

Brian Paul (19):

-  draw: Fix an off-by-one bug in a vsplit assertion.
-  mesa: fix a few format table mistakes, assertions
-  mesa: fix num_draw_buffers==0 in fixed-function fragment program
   generation
-  mesa: don't assert in GetIntegerIndexed, etc
-  mesa: check for dummy renderbuffer in
   \_mesa_FramebufferRenderbufferEXT()
-  llvmpipe: make sure binning is active when we begin/end a query
-  st/mesa: fix incorrect fragcoord.x translation
-  softpipe: fix off-by-one error in setup_fragcoord_coeff()
-  cso: fix loop bound in cso_set_vertex_samplers()
-  st/mesa: set renderbuffer \_BaseFormat in a few places
-  st/mesa: fix the default case in st_format_datatype()
-  st/mesa: need to translate clear color according to surface's base
   format
-  docs: update 7.9.2 release notes with Brian's cherry-picks
-  docs: add links to 7.9.1 and 7.9.2 release notes
-  mesa: include compiler.h for ASSERT macro
-  glsl: add ir_shader case in switch stmt to silence warning
-  glsl2: fix signed/unsigned comparison warning
-  mesa: implement glGetShaderPrecisionFormat()
-  docs: updated environment variable list

Bryce Harrington (1):

-  r300g: Null pointer check for buffer deref in gallium winsys

Chad Versace (14):

-  glsl: At link-time, check that globals have matching centroid
   qualifiers
-  glcpp: Fix segfault when validating macro redefinitions
-  glsl: Fix parser rule for type_specifier
-  glsl: Change default value of ast_type_specifier::precision
-  glsl: Add semantic checks for precision qualifiers
-  glsl: Add support for default precision statements
-  glsl: Remove redundant semantic check in parser
-  glsl: Fix semantic checks on precision qualifiers
-  glsl: Fix segfault due to missing printf argument
-  glsl: Mark 'in' variables at global scope as read-only
-  glcpp: Raise error when modulus is zero
-  glsl: Set operators '%' and '%=' to be reserved when GLSL < 1.30
-  glsl: Reinstate constant-folding for division by zero
-  tnl: Add support for datatype GL_FIXED in vertex arrays

Chia-I Wu (1):

-  mesa: Add glDepthRangef and glClearDepthf to APIspec.xml.

Chris Wilson (1):

-  intel: Check for unsupported texture when finishing using as a render
   target

Cyril Brulebois (1):

-  Point to bugs.freedesktop.org rather than bugzilla.freedesktop.org

Dave Airlie (2):

-  radeon/r200: fix fbo-clearmipmap + gen-teximage
-  radeon: avoid segfault on 3D textures.

Dimitry Andric (4):

-  mesa: s/movzx/movzbl/
-  mesa: s/movzxw/movzwl/ in read_rgba_span_x86.S
-  glapi: adding @ char before type specifier in glapi_x86.S
-  glapi: add @GOTPCREL relocation type

Eric Anholt (11):

-  i965: Avoid double-negation of immediate values in the VS.
-  docs: Add a relnote for the Civ IV on i965.
-  i965/vs: When MOVing to produce ABS, strip negate of the operand.
-  glsl: Fix the lowering of variable array indexing to not lose
   write_masks.
-  intel: Make renderbuffer tiling choice match texture tiling choice.
-  glapi: Add entrypoints and enums for GL_ARB_ES2_compatibility.
-  mesa: Add extension enable bit for GL_ARB_ES2_compatibility.
-  mesa: Add actual support for glReleaseShaderCompiler from ES2.
-  mesa: Add support for glDepthRangef and glClearDepthf.
-  mesa: Add getters for ARB_ES2_compatibility MAX_*_VECTORS.
-  mesa: Add getter for GL_SHADER_COMPILER with ARB_ES2_compatibility.

Ian Romanick (42):

-  docs: Add 7.9.1 md5sums
-  glsl: Support the 'invariant(all)' pragma
-  glcpp: Generate an error for division by zero
-  glsl: Add version_string containing properly formatted GLSL version
-  glsl & glcpp: Refresh autogenerated lexer and parser files.
-  glsl: Disallow 'in' and 'out' on globals in GLSL 1.20
-  glsl: Track variable usage, use that to enforce semantics
-  glsl: Allow 'in' and 'out' when 'layout' is also available
-  docs: Initial set of release notes for 7.9.2
-  mesa: bump version to 7.9.2-devel
-  docs: Update 7.9.2 release notes
-  i965: Make OPCODE_KIL_NV do its work in a temp, not the null reg!
-  glsl: Refresh autogenerated lexer and parser files.
-  glsl: Don't assert when the value returned by a function has no
   rvalue
-  linker: Set sizes for non-global arrays as well
-  linker: Propagate max_array_access while linking functions
-  docs: Update 7.9.2 release notes
-  Use C-style system headers in C++ code to avoid issues with std::
   namespace
-  mesa: glGetUniform only returns a single element of an array
-  linker: Generate link errors when ES shaders are missing stages
-  mesa: Fix error checks in GetVertexAttrib functions
-  docs: Update 7.9.2 release notes
-  mesa: Remove unsupported OES extensions
-  glapi: Regenerate for GL_ARB_ES2_compatibility.
-  mesa: Connect glGetShaderPrecisionFormat into the dispatch table
-  i965: Set correct values for range/precision of fragment shader types
-  i915: Set correct values for range/precision of fragment shader types
-  intel: Fix typeos from 3d028024 and 790ff232
-  glsl: Ensure that all GLSL versions are supported in the stand-alone
   compiler
-  glsl: Reject shader versions not supported by the implementation
-  mesa: Initial size for secondary color array is 3
-  glcpp: Regenerate files from recent cherry picks
-  glsl: Finish out the reduce/reduce error fixes
-  glsl: Regenerate compiler files from cherry picks
-  linker: Fix off-by-one error implicit array sizing
-  i915: Only mark a register as available if all components are written
-  i915: Calculate partial result to temp register first
-  i915: Force lowering of all types of indirect array accesses in the
   FS
-  docs: Update 7.9.2 release notes for recent cherry picks
-  docs: Clean up bug fixes list
-  intel: Remove driver date and related bits from renderer string
-  mesa: set version string to 7.9.2 (final)

Jian Zhao (1):

-  mesa: fix an error in uniform arrays in row calculating.

Julien Cristau (3):

-  glx: fix request lengths
-  glx: fix GLXChangeDrawableAttributesSGIX request
-  glx: fix length of GLXGetFBConfigsSGIX

Keith Packard (1):

-  glsl: Eliminate reduce/reduce conflicts in glsl grammar

Kenneth Graunke (12):

-  glsl: Expose a public glsl_type::void_type const pointer.
-  glsl: Don't bother unsetting a destructor that was never set.
-  glsl, i965: Remove unnecessary talloc includes.
-  glcpp: Remove use of talloc reference counting.
-  ralloc: Add a fake implementation of ralloc based on talloc.
-  Convert everything from the talloc API to the ralloc API.
-  ralloc: a new MIT-licensed recursive memory allocator.
-  Remove talloc from the make and automake build systems.
-  Remove talloc from the SCons build system.
-  Remove the talloc sources from the Mesa repository.
-  glsl: Fix use of uninitialized values in \_mesa_glsl_parse_state
   ctor.
-  glsl: Use reralloc instead of plain realloc.

Marek Olšák (3):

-  docs: fix messed up names with special characters in relnotes-7.9.1
-  mesa: fix texture3D mipmap generation for UNSIGNED_BYTE_3_3_2
-  st/dri: Track drawable context bindings

Paulo Zanoni (1):

-  dri_util: fail driCreateNewScreen if InitScreen is NULL

Sam Hocevar (2):

-  docs: add glsl info
-  docs: fix glsl_compiler name

Vinson Lee (1):

-  ralloc: Add missing va_end following va_copy.

nobled (1):

-  glx: Put null check before use
