Mesa 7.9.1 Release Notes / January 7, 2011

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

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

See the Compiling/Installing page for prerequisites for DRI hardware acceleration.

MD5 checksums

78422843ea875ad4eac35b9b8584032b  MesaLib-7.9.1.tar.gz
07dc6cfb5928840b8b9df5bd1b3ae434  MesaLib-7.9.1.tar.bz2
c8eaea5b3c3d6dee784bd8c2db91c80f  MesaLib-7.9.1.zip
ee9ecae4ca56fbb2d14dc15e3a0a7640  MesaGLUT-7.9.1.tar.gz
41fc477d524e7dc5c84da8ef22422bea  MesaGLUT-7.9.1.tar.bz2
90b287229afdf19317aa989d19462e7a  MesaGLUT-7.9.1.zip

New features

None.

Bug fixes

This list is likely incomplete.

  • Bug 28800 - [r300c, r300g] Texture corruption with World of Warcraft

  • Bug 29420 - Amnesia / HPL2 RendererFeatTest - not rendering correctly

  • Bug 29946 - [swrast] piglit valgrind glsl-array-bounds-04 fails

  • Bug 30261 - [GLSL 1.20] allowing inconsistent invariant declaration between two vertex shaders

  • Bug 30632 - [softpipe] state_tracker/st_manager.c:489: st_context_notify_invalid_framebuffer: Assertion `stfb && stfb->iface == stfbi’ failed.

  • Bug 30694 - wincopy will crash on Gallium drivers when going to front buffer

  • Bug 30787 - Invalid asm shader does not generate draw-time error when used with GLSL shader

  • Bug 30993 - getFramebufferAttachmentParameteriv wrongly generates error

  • Bug 31101 - [glsl2] abort() in ir_validate::visit_enter(ir_assignment *ir)

  • Bug 31193 - [regression] aa43176e break water reflections

  • Bug 31194 - The mesa meta save/restore code doesn’t ref the current GLSL program

  • Bug 31371 - glslparsertest: ir.cpp:358: ir_constant::ir_constant(const glsl_type*, const ir_constant_data*): Assertion `(type->base_type >= 0) && (type->base_type <= 3)’ failed.

  • Bug 31439 - Crash in glBufferSubData() with size == 0

  • Bug 31495 - [i965 gles2c bisected] OpenGL ES 2.0 conformance GL2Tests_GetBIFD_input.run regressed

  • Bug 31514 - isBuffer returns true for unbound buffers

  • Bug 31560 - [tdfx] tdfx_tex.c:702: error: ‘const struct gl_color_table’ has no member named ‘Format’

  • Bug 31617 - Radeon/Compiz: ‘failed to attach dri2 front buffer’, error case not handled

  • Bug 31648 - [GLSL] array-struct-array gets assertion: `(size >= 1) && (size <= 4)’ failed.

  • Bug 31650 - [GLSL] varying gl_TexCoord fails to be re-declared to different size in the second shader

  • Bug 31673 - GL_FRAGMENT_PRECISION_HIGH preprocessor macro undefined in GLSL ES

  • Bug 31690 - i915 shader compiler fails to flatten if in Aquarium webgl demo.

  • Bug 31832 - [i915] Bad renderbuffer format: 21

  • Bug 31841 - [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !

  • Bug 31894 - Writing to gl_PointSize with GLES2 corrupts other varyings

  • Bug 31909 - [i965] brw_fs.cpp:1461: void fs_visitor::emit_bool_to_cond_code(ir_rvalue*): Assertion `expr->operands[i]->type->is_scalar()’ failed.

  • Bug 31934 - [gallium] Mapping empty buffer object causes SIGSEGV

  • Bug 31983 - [i915 gles2] “if (expression with builtin/varying variables) discard” breaks linkage

  • Bug 31985 - [GLSL 1.20] initialized uniform array considered as “unsized”

  • Bug 31987 - [gles2] if input a wrong pname(GL_NONE) to glGetBoolean, it will not case GL_INVALID_ENUM

  • Bug 32035 - [GLSL bisected] comparing unsized array gets segfault

  • Bug 32070 - llvmpipe renders stencil demo incorrectly

  • Bug 32273 - assertion fails when starting vdrift 2010 release with shaders enabled

  • Bug 32287 - [bisected GLSL] float-int failure

  • Bug 32311 - [965 bisected] Array look-ups broken on GM45

  • Bug 32520 - [gles2] glBlendFunc(GL_ZERO, GL_DST_COLOR) will result in GL_INVALID_ENUM

  • Bug 32825 - egl_glx driver completely broken in 7.9 branch [fix in master]

Changes

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

git log mesa-7.9..mesa-7.9.1

Alex Deucher (5):

  • r100: revalidate after radeon_update_renderbuffers

  • r600c: add missing radeon_prepare_render() call on evergreen

  • r600c: properly align mipmaps to group size

  • gallium/egl: fix r300 vs r600 loading

  • r600c: fix some opcodes on evergreen

Aras Pranckevicius (2):

  • glsl: fix crash in loop analysis when some controls can’t be determined

  • glsl: fix matrix type check in ir_algebraic

Brian Paul (27):

  • swrast: fix choose_depth_texture_level() to respect mipmap filtering state

  • st/mesa: replace assertion w/ conditional in framebuffer invalidation

  • egl/i965: include inline_wrapper_sw_helper.h

  • mesa: Add missing else in do_row_3D

  • mesa: add missing formats in _mesa_format_to_type_and_comps()

  • mesa: handle more pixel types in mipmap generation code

  • mesa: make glIsBuffer() return false for never bound buffers

  • mesa: fix glDeleteBuffers() regression

  • swrast: init alpha value to 1.0 in opt_sample_rgb_2d()

  • meta: Mask Stencil.Clear against stencilMax in _mesa_meta_Clear

  • st/mesa: fix mapping of zero-sized buffer objects

  • mesa: check for posix_memalign() errors

  • llvmpipe: fix broken stencil writemask

  • mesa: fix GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME query

  • mesa: return GL_FRAMEBUFFER_DEFAULT as FBO attachment type

  • mesa: make glGet*(GL_NONE) generate GL_INVALID_ENUM

  • mesa: test for cube map completeness in glGenerateMipmap()

  • tnl: Initialize gl_program_machine memory in run_vp.

  • tnl: a better way to initialize the gl_program_machine memory

  • mesa, st/mesa: disable GL_ARB_geometry_shader4

  • glsl: fix off by one in register index assertion

  • st/mesa: fix mipmap generation bug

  • glsl: new glsl_strtod() wrapper to fix decimal point interpretation

  • mesa: no-op glBufferSubData() on size==0

  • tdfx: s/Format/_BaseFormat/

  • st/mesa: fix renderbuffer pointer check in st_Clear()

  • mesa: Bump the number of bits in the register index.

Chad Versace (5):

  • glsl: Fix lexer rule for ^=

  • glsl: Fix ast-to-hir for ARB_fragment_coord_conventions

  • glsl: Fix ir_expression::constant_expression_value()

  • glsl: Fix erroneous cast in ast_jump_statement::hir()

  • glsl: Fix linker bug in cross_validate_globals()

Chia-I Wu (10):

  • targets/egl: Fix linking with libdrm.

  • st/vega: Fix version check in context creation.

  • st/egl: Do not finish a fence that is NULL.

  • egl: Fix a false negative check in _eglCheckMakeCurrent.

  • st/mesa: Unreference the sampler view in st_bind_surface.

  • egl_dri2: Fix __DRI_DRI2 version 1 support.

  • st/vega: Do not wait NULL fences.

  • mesa: Do not advertise GL_OES_texture_3D.

  • egl_glx: Fix borken driver.

  • egl: Check extensions.

Daniel Lichtenberger (1):

  • radeon: fix potential segfault in renderbuffer update

Daniel Vetter (1):

  • r200: revalidate after radeon_update_renderbuffers

Dave Airlie (1):

  • r300g: fixup rs690 tiling stride alignment calculations.

Eric Anholt (13):

  • intel: Allow CopyTexSubImage to InternalFormat 3/4 textures, like RGB/RGBA.

  • glsl: Free the loop state context when we free the loop state.

  • i965: Allow OPCODE_SWZ to put immediates in the first arg.

  • i965: Add support for rendering to SARGB8 FBOs.

  • glsl: Add a helper constructor for expressions that works out result type.

  • glsl: Fix structure and array comparisions.

  • glsl: Quiet unreachable no-return-from-function warning.

  • glsl: Mark the array access for whole-array comparisons.

  • glsl: Fix flipped return of has_value() for array constants.

  • mesa: Add getters for the rest of the supported draw buffers.

  • mesa: Add getters for ARB_copy_buffer’s attachment points.

  • i965: Correct the dp_read message descriptor setup on g4x.

  • glsl: Correct the marking of InputsRead/OutputsWritten on in/out matrices.

Fabian Bieler (1):

  • glsl: fix lowering conditional returns in subroutines

Francisco Jerez (3):

  • meta: Don’t leak alpha function/reference value changes.

  • meta: Fix incorrect rendering of the bitmap alpha component.

  • meta: Don’t try to disable cube maps if the driver doesn’t expose the extension.

Henri Verbeet (2):

  • r600: Evergreen has two extra frac_bits for the sampler LOD state.

  • st/mesa: Handle wrapped depth buffers in st_copy_texsubimage().

Ian Romanick (33):

  • Add 7.9 md5sums

  • docs: Import 7.8.x release notes from 7.8 branch.

  • docs: download.html does not need to be updated for each release

  • docs: Update mailing lines from sf.net to freedesktop.org

  • docs: added news item for 7.9 release

  • mesa: Validate assembly shaders when GLSL shaders are used

  • linker: Reject shaders that have unresolved function calls

  • mesa: Refactor validation of shader targets

  • glsl: Slightly change the semantic of _LinkedShaders

  • linker: Improve handling of unread/unwritten shader inputs/outputs

  • glsl: Commit lexer files changed by previous cherry picking

  • mesa: Make metaops use program refcounts instead of names.

  • glsl: Fix incorrect gl_type of sampler2DArray and sampler1DArrayShadow

  • mesa: Allow query of MAX_SAMPLES with EXT_framebuffer_multisample

  • glsl: better handling of linker failures

  • mesa: Fix glGet of ES2’s GL_MAX_*_VECTORS properties.

  • i915: Disallow alpha, red, RG, and sRGB as render targets

  • glsl/linker: Free any IR discarded by optimization passes.

  • glsl: Add an optimization pass to simplify discards.

  • glsl: Add a lowering pass to move discards out of if-statements.

  • i915: Correctly generate unconditional KIL instructions

  • glsl: Add unary ir_expression constructor

  • glsl: Ensure that equality comparisons don’t return a NULL IR tree

  • glcpp: Commit changes in generated files cause by previous commit

  • glsl: Inherrit type of declared variable from initializer

  • glsl: Inherrit type of declared variable from initializer after processing assignment

  • linker: Ensure that unsized arrays have a size after linking

  • linker: Fix regressions caused by previous commit

  • linker: Allow built-in arrays to have different sizes between shader stages

  • ir_to_mesa: Don’t generate swizzles for record derefs of non-scalar/vectors

  • Refresh autogenerated file builtin_function.cpp.

  • docs: Initial set of release notes for 7.9.1

  • mesa: set version string to 7.9.1

Julien Cristau (1):

  • Makefile: don’t include the same files twice in the tarball

Kenneth Graunke (19):

  • glcpp: Return NEWLINE token for newlines inside multi-line comments.

  • generate_builtins.py: Output large strings as arrays of characters.

  • glsl: Fix constant component count in vector constructor emitting.

  • ir_dead_functions: Actually free dead functions and signatures.

  • glcpp: Define GL_FRAGMENT_PRECISION_HIGH if GLSL version >= 1.30.

  • glsl: Unconditionally define GL_FRAGMENT_PRECISION_HIGH in ES2 shaders.

  • glsl: Fix constant expression handling for <, >, <=, >= on vectors.

  • glsl: Use do_common_optimization in the standalone compiler.

  • glsl: Don’t inline function prototypes.

  • glsl: Add a virtual as_discard() method.

  • glsl: Remove “discard” support from lower_jumps.

  • glsl: Refactor get_num_operands.

  • glcpp: Don’t emit SPACE tokens in conditional_tokens production.

  • glsl: Clean up code by adding a new is_break() function.

  • glsl: Consider the “else” branch when looking for loop breaks.

  • Remove OES_compressed_paletted_texture from the ES2 extension list.

  • glsl/builtins: Compute the correct value for smoothstep(vec, vec, vec).

  • Fix build on systems where “python” is python 3.

  • i965: Internally enable GL_NV_blend_square on ES2.

Kristian Høgsberg (1):

  • i965: Don’t write mrf assignment for pointsize output

Luca Barbieri (1):

  • glsl: Unroll loops with conditional breaks anywhere (not just the end)

Marek Olšák (17):

  • r300g: fix microtiling for 16-bits-per-channel formats

  • r300g: fix texture border for 16-bits-per-channel formats

  • r300g: add a default channel ordering of texture border for unhandled formats

  • r300g: fix texture border color for all texture formats

  • r300g: fix rendering with no vertex elements

  • r300/compiler: fix rc_rewrite_depth_out for it to work with any instruction

  • r300g: fix texture border color once again

  • r300g: fix texture swizzling with compressed textures on r400-r500

  • r300g: disable ARB_texture_swizzle if S3TC is enabled on r3xx-only

  • mesa, st/mesa: fix gl_FragCoord with FBOs in Gallium

  • st/mesa: initialize key in st_vp_varient

  • r300/compiler: fix swizzle lowering with a presubtract source operand

  • r300g: fix rendering with a vertex attrib having a zero stride

  • ir_to_mesa: Add support for conditional discards.

  • r300g: finally fix the texture corruption on r3xx-r4xx

  • mesa: fix texel store functions for some float formats

  • r300/compiler: disable the rename_regs pass for loops

Mario Kleiner (1):

  • mesa/r300classic: Fix dri2Invalidate/radeon_prepare_render for page flipping.

Peter Clifton (1):

  • intel: Fix emit_linear_blit to use DWORD aligned width blits

Robert Hooker (2):

  • intel: Add a new B43 pci id.

  • egl_dri2: Add missing intel chip ids.

Roland Scheidegger (1):

  • r200: fix r200 large points

Thomas Hellstrom (17):

  • st/xorg: Don’t try to use option values before processing options

  • xorg/vmwgfx: Make vmwarectrl work also on 64-bit servers

  • st/xorg: Add a customizer option to get rid of annoying cursor update flicker

  • xorg/vmwgfx: Don’t hide HW cursors when updating them

  • st/xorg: Don’t try to remove invalid fbs

  • st/xorg: Fix typo

  • st/xorg, xorg/vmwgfx: Be a bit more frendly towards cross-compiling environments

  • st/xorg: Fix compilation errors for Xservers compiled without Composite

  • st/xorg: Don’t use deprecated x*alloc / xfree functions

  • xorg/vmwgfx: Don’t use deprecated x*alloc / xfree functions

  • st/xorg: Fix compilation for Xservers >= 1.10

  • mesa: Make sure we have the talloc cflags when using the talloc headers

  • egl: Add an include for size_t

  • mesa: Add talloc includes for gles

  • st/egl: Fix build for include files in nonstandard places

  • svga/drm: Optionally resolve calls to powf during link-time

  • gallium/targets: Trivial crosscompiling fix

Tom Stellard (7):

  • r300/compiler: Make sure presubtract sources use supported swizzles

  • r300/compiler: Fix register allocator’s handling of loops

  • r300/compiler: Fix instruction scheduling within IF blocks

  • r300/compiler: Use zero as the register index for unused sources

  • r300/compiler: Ignore alpha dest register when replicating the result

  • r300/compiler: Use correct swizzles for all presubtract sources

  • r300/compiler: Don’t allow presubtract sources to be remapped twice

Vinson Lee (1):

  • glsl: Fix ‘control reaches end of non-void function’ warning.

richard (1):

  • r600c : inline vertex format is not updated in an app, switch to use vfetch constants. For the 7.9 and 7.10 branches as well.