# The Mesa 3D Graphics Library

# Mesa 7.11.1 Release Notes / November 17, 2011

Mesa 7.11.1 is a bug fix release which fixes bugs found since the 7.11 release.

Mesa 7.11 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

    ac0181a4076770fb657c1169af43aa09  MesaLib-7.11.1.tar.gz
    a77307102cee844ff6544ffa8fafeac1  MesaLib-7.11.1.tar.bz2
    dfcb11516c1730f3981b55a65a835623  MesaLib-7.11.1.zip
    2cb2b9ecb4fb7d1a6be69346ee886952  MesaGLUT-7.11.1.tar.gz
    3f54e314290d4dacbab089839197080b  MesaGLUT-7.11.1.tar.bz2
    5d66c7ee8c5cc2f27e1ffb037ad4172c  MesaGLUT-7.11.1.zip

## New features

None.

## Bug fixes

This list is likely incomplete.

- Bug 3165 - texImage.IsCompressed and texImage.CompressedSize issues
- Bug 23525 - Software rendering on QEMU guests badly broken
- Bug 28125 - DRI2 prevents indirect glx
- Bug 34628 - [ilk] skybox errors in quake4
- Bug 36371 - r200: piglit readPixSanity failure
- Bug 36669 - EmitNoMainReturn set to 1 doesn't make the GLSL compiler lower all the RET opcodes
- Bug 36939 - multitexturing is messed up in quake wars (regression)
- Bug 37907 - [swrast] SIGSEGV swrast/s_depth.c:569
- Bug 38163 - Gnome Shell Display Bug
- Bug 38625 - ast_to_hir.cpp:1761: const glsl_type* process_array_type(YYLTYPE*, const glsl_type*, ast_node*, _mesa_glsl_parse_state*): Assertion `dummy_instructions.is_empty()' failed.
- Bug 38729 - [softpipe] sp_quad_depth_test.c:215:convert_quad_stencil: Assertion `0' failed.
- Bug 38863 - [IVB]GPU hang when running 3D games like openarena
- Bug 39193 - [llvmpipe and r600g] glCheckFramebufferStatusEXT segfaults in Gallium when checking status on a framebuffer bound to a texture that's bound to a pixmap
- Bug 39651 - [glsl] Assertion failure when implicitly converting out parameters
- Bug 39991 - [regression]GL_PALETTE8_RGBA8_OES format of glCompressedTexImage2D will cause err GL_INVALID_ENUM with GLES1.x
- Bug 40022 - [i915] out-of-bounds write src/mesa/drivers/dri/i915/i915_fragprog.c:321
- Bug 40062 - in etqw the strogg radar is black (regression)
- Bug 40324 - [SNB] gpu hang in mesa 7.11
- Bug 40533 - i915: piglit glean/readPixSanity: DRI2SwapBuffers: BadDrawable (invalid Pixmap or Window parameter)
- Bug 41096 - [sandybridge-m-gt2+] GPU lockup render.IPEHR: 0x7a000002
- Bug 41969 - The Mesa meta save/restore code doesn't always save the active program
- Bug 42175 - RV730: Display errors in glxgears & WebGL
- Bug 42268 - [bisected] oglc pbo(negative.invalidOffsetValue) aborts on 7.11 branch

## Changes

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

      git log mesa-7.11..mesa-7.11.1

Adam Jackson (2):

- drisw: Remove cargo culting that breaks GLX 1.3 ctors
- glx: Don't enable INTEL_swap_event unconditionally

Alex Deucher (1):

- r600g: fix up vs export handling

Ben Widawsky (1):

- intel: GetBuffer fix

Brian Paul (15):

- docs: add 7.11 md5 sums
- docs: news item for 7.11 release
- st/mesa: Convert size assertions to conditionals in st_texture_image_copy.
- softpipe: add missing stencil format case in convert_quad_stencil()
- mesa: fix texstore addressing bugs for depth/stencil formats
- mesa: add missing breaks for GL_TEXTURE_CUBE_MAP_SEAMLESS queries
- swrast: don't try to do depth testing if there's no depth buffer
- meta: fix/add checks for GL_EXT_framebuffer_sRGB
- mesa: fix PACK_COLOR_5551(), PACK_COLOR_1555() macros
- meta: fix broken sRGB mipmap generation
- mesa: add _NEW_CURRENT_ATTRIB in _mesa_program_state_flags()
- mesa: fix error handling for dlist image unpacking
- mesa: generate GL_INVALID_OPERATION in glIsEnabledIndex() between Begin/End
- mesa: fix incorrect error code in _mesa_FramebufferTexture1D/3DEXT()
- mesa: fix format/type check in unpack_image() for bitmaps

Carl Simonson (1):

- i830: Add missing vtable entry for i830 from the hiz work.

Carl Worth (5):

- glcpp: Fix two (or more) successive applications of token pasting
- glcpp: Test a non-function-like macro using the token paste operator
- glcpp: Implement token pasting for non-function-like macros
- glcpp: Raise error if defining any macro containing two consecutive underscores
- glcpp: Add a test for #elif with an undefined macro.

Chad Versace (5):

- glsl: Add method glsl_type::can_implicitly_convert_to()
- glsl: Fix implicit conversions in non-constructor function calls
- glsl: Remove ir_function.cpp:type_compare()
- glsl: Fix conversions in array constructors
- x86-64: Fix compile error with clang

Chia-I Wu (3):

- glsl: empty declarations should be valid
- intel: rename intel_extensions_es2.c to intel_extensions_es.c
- intel: fix GLESv1 support

Chris Wilson (1):

- i915: out-of-bounds write in calc_live_regs()

Christopher James Halse Rogers (1):

- glx/dri2: Paper over errors in DRI2Connect when indirect

David Reveman (1):

- i915g: Fix off-by-one in scissors.

Eric Anholt (16):

- mesa: Don't skip glGetProgramEnvParam4dvARB if there was already an error.
- mesa: Fix glGetUniform() type conversions.
- mesa: Add support for Begin/EndConditionalRender in display lists.
- mesa: Throw an error instead of asserting for condrender with query == 0.
- mesa: Throw an error when starting conditional render on an active query.
- mesa: Don't skip glGetProgramLocalParam4dvARB if there was already an error.
- glsl: Allow ir_assignment() constructor to not specify condition.
- glsl: Clarify error message about whole-array assignment in GLSL 1.10.
- glsl: When assigning to a whole array, mark the array as accessed.
- glsl: When assiging from a whole array, mark it as used.
- i965/fs: Respect ARB_color_buffer_float clamping.
- i965: Add missing _NEW_POLYGON flag to polygon stipple upload.
- i965: Fix polygon stipple offset state flagging.
- intel: Mark MESA_FORMAT_X8_Z24 as always supported.
- mesa: Don't error on glFeedbackBuffer(size = 0, buffer = NULL)
- glsl: Fix gl_NormalMatrix swizzle setup to match i965's invariants.

Henri Verbeet (6):

- mesa: Also set the remaining draw buffers to GL_NONE when updating just the first buffer in _mesa_drawbuffers().
- r600g: Support the PIPE_FORMAT_R16_FLOAT colorformat.
- mesa: Check the texture against all units in unbind_texobj_from_texunits().
- mesa: Allow sampling from units >= MAX_TEXTURE_UNITS in shaders.
- mesa: Use the Elements macro for the sampler index assert in validate_samplers().
- mesa: Fix a couple of TexEnv unit limits.

Ian Romanick (17):

- mesa: Add utility function to get base format from a GL compressed format
- mesa: Return the correct internal fmt when a generic compressed fmt was used
- mesa: Make _mesa_get_compressed_formats match the texture compression specs
- linker: Make linker_error set LinkStatus to false
- linker: Make linker_{error,warning} generally available
- mesa: Ensure that gl_shader_program::InfoLog is never NULL
- ir_to_mesa: Use Add linker_error instead of fail_link
- ir_to_mesa: Emit warnings instead of errors for IR that can't be lowered
- i915: Fail without crashing if a Mesa IR program uses too many registers
- i915: Only emit program errors when INTEL_DEBUG=wm or INTEL_DEBUG=fallbacks
- mesa: Add GL_OES_compressed_paletted_texture formats to _mesa_is_compressed_format
- mesa: Add GL_OES_compressed_paletted_texture formats to _mesa_base_tex_format
- mesa: Refactor expected texture size check in cpal_get_info
- mesa: Add _mesa_cpal_compressed_format_type
- mesa: Refactor compressed texture error checks to work with paletted textures
- mesa: Remove redundant compressed paletted texture error checks
- mesa: Advertise GL_OES_compressed_paletted_texture in OpenGL ES1.x

Jeremy Huddleston (3):

- apple: Silence some debug spew
- apple: Use the correct (OpenGL.framework) glViewport and glScissor during init
- apple: Implement applegl_unbind_context

José Fonseca (1):

- docs: Update llvmpipe docs.

Kenneth Graunke (12):

- glsl: Avoid massive ralloc_strndup overhead in S-Expression parsing.
- mesa: In validate_program(), initialize errMsg for safety.
- i965/gen5+: Fix incorrect miptree layout for non-power-of-two cubemaps.
- i965: Use proper texture alignment units for cubemaps on Gen5+.
- i965: Fix incorrect maximum PS thread count shift on Ivybridge.
- i965: Emit depth stalls and flushes before changing depth state on Gen6+.
- i965/fs: Allow SIMD16 with control flow on Ivybridge.
- i965: Allow SIMD16 color writes on Ivybridge.
- i965: Fix inconsistent indentation in brw_eu_emit.c.
- intel: Depth format fixes
- i965: Apply post-sync non-zero workaround to homebrew workaround.
- mesa/get: Move MAX_LIGHTS from GL/ES2 to GL/ES1.

Kristian Høgsberg (1):

- glx: Don't flush twice if we fallback to dri2CopySubBuffer

Marc Pignat (1):

- drisw: Fix 24bpp software rendering, take 2

Marcin Baczyński (2):

- configure: fix gcc version check
- configure: allow C{,XX}FLAGS override

Marcin Slusarz (3):

- nouveau: fix nouveau_fence leak
- nouveau: fix crash during fence emission
- nouveau: fix fence hang

Marek Olšák (19):

- vbo: do not call _mesa_max_buffer_index in debug builds
- winsys/radeon: fix space checking
- r300/compiler: fix a warning that a variable may be uninitialized
- r300/compiler: remove an unused-but-set variable and simplify the code
- u_vbuf_mgr: cleanup original vs real vertex buffer arrays
- u_vbuf_mgr: don't take per-instance attribs into acc. when computing max index
- u_vbuf_mgr: fix max_index computation for large src_offset
- u_vbuf_mgr: s/u_vbuf_mgr_/u_vbuf_
- u_vbuf_mgr: remove unused flag U_VBUF_UPLOAD_FLUSHED
- u_vbuf_mgr: rework user buffer uploads
- u_vbuf_mgr: fix uploading with a non-zero index bias
- configure.ac: fix xlib-based softpipe build
- r600g: add index_bias to index buffer bounds
- r300g: fix rendering with a non-zero index bias in draw_elements_immediate
- Revert "r300g: fix rendering with a non-zero index bias in draw_elements_immediate"
- pb_bufmgr_cache: flush cache when create_buffer fails and try again
- r300g: don't return NULL in resource_from_handle if the resource is too small
- r600g: set correct tiling flags in depth info
- r300g: don't call u_trim_pipe_prim in r300_swtcl_draw_vbo

Michel Dänzer (4):

- st/mesa: Finalize texture on render-to-texture.
- glx/dri2: Don't call X server for SwapBuffers when there's no back buffer.
- gallium/util: Add macros for converting from little endian to CPU byte order.
- r300g: Fix queries on big endian hosts.

Neil Roberts (1):

- meta: Fix saving the active program

Paul Berry (18):

- glsl: Lower unconditional return statements.
- glsl: Refactor logic for determining whether to lower return statements.
- glsl: lower unconditional returns and continues in loops.
- glsl: Use foreach_list in lower_jumps.cpp
- glsl: In lower_jumps.cpp, lower both branches of a conditional.
- glsl: Lower break instructions when necessary at the end of a loop.
- glsl: improve the accuracy of the radians() builtin function
- glsl: improve the accuracy of the atan(x,y) builtin function.
- Revert "glsl: Skip processing the first function's body in do_dead_functions()."
- glsl: Emit function signatures at toplevel, even for built-ins.
- glsl: Constant-fold built-in functions before outputting IR
- glsl: Check array size is const before asserting that no IR was generated.
- glsl: Perform implicit type conversions on function call out parameters.
- glsl: Fix type error when lowering integer divisions
- glsl: Rework oversize array check for gl_TexCoord.
- glsl: Remove field array_lvalue from ir_variable.
- glsl hierarchical visitor: Do not overwrite base_ir for parameter lists.
- glsl: improve the accuracy of the asin() builtin function.

Tobias Droste (1):

- r300/compiler: simplify code in peephole_add_presub_add

Tom Fogal (1):

- Only use gcc visibility support with gcc4+.

Tom Stellard (1):

- r300/compiler: Fix regalloc for values with multiple writers

Vadim Girlin (5):

- st/mesa: flush bitmap cache on query and conditional render boundaries
- r600g: use backend mask for occlusion queries
- r600g: take into account force_add_cf in pops
- r600g: fix check_and_set_bank_swizzle
- r600g: fix replace_gpr_with_pv_ps

Yuanhan Liu (17):

- i965: fix the constant interp bitmask for flat mode
- mesa: fix error handling for glEvalMesh1/2D
- mesa: fix error handling for some glGet* functions
- mesa: fix error handling for glTexEnv
- mesa: fix error handling for glIsEnabled
- mesa: fix error handling for glPixelZoom
- mesa: fix error handling for glSelectBuffer
- mesa: fix error handling for glMapBufferRange
- mesa: fix error handling for glMaterial*
- intel: fix the wrong code to detect null texture.
- mesa: add a function to do the image data copy stuff for save_CompressedTex(Sub)Image
- i965: setup address rounding enable bits
- mesa: generate error if pbo offset is not aligned with the size of specified type
- mesa: fix inverted pbo test error at _mesa_GetnCompressedTexImageARB
- mesa: handle the pbo case for save_Bitmap
- mesa: handle PBO access error in display list mode
- intel: don't call unmap pbo if pbo is not mapped