Mesa 11.1.3 Release Notes / April 17, 2016
==========================================

Mesa 11.1.3 is a bug fix release which fixes bugs found since the 11.1.2
release.

Mesa 11.1.3 implements the OpenGL 4.1 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being
used. Some drivers don't support all the features required in OpenGL
4.1. OpenGL 4.1 is **only** available if requested at context creation
because compatibility contexts are not supported.

SHA256 checksums
----------------

::

   9e86c72b6b2e8adb53c1c4a0002ab267b45094d753eb9404b1db34f81ce94ccf  mesa-11.1.3.tar.gz
   51f6658a214d75e4d9f05207586d7ed56ebba75c6b10841176fb6675efa310ac  mesa-11.1.3.tar.xz

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

None

Bug fixes
---------

This list is likely incomplete.

-  `Bug 27512 <https://bugs.freedesktop.org/show_bug.cgi?id=27512>`__ -
   Illegal instruction \_mesa_x86_64_transform_points4_general
-  `Bug 91526 <https://bugs.freedesktop.org/show_bug.cgi?id=91526>`__ -
   World of Warcraft (on Wine) has UI corruption with nouveau
-  `Bug 92193 <https://bugs.freedesktop.org/show_bug.cgi?id=92193>`__ -
   [SKL]
   ES2-CTS.gtf.GL2ExtensionTests.compressed_astc_texture.compressed_astc_texture
   fails
-  `Bug 93358 <https://bugs.freedesktop.org/show_bug.cgi?id=93358>`__ -
   [HSW] Unreal Elemental demo - assertion error in
   copy_image_with_blitter
-  `Bug 93418 <https://bugs.freedesktop.org/show_bug.cgi?id=93418>`__ -
   Geometry Shaders output wrong vertices on Sandy Bridge
-  `Bug 93524 <https://bugs.freedesktop.org/show_bug.cgi?id=93524>`__ -
   Clover doesn't build
-  `Bug 93667 <https://bugs.freedesktop.org/show_bug.cgi?id=93667>`__ -
   Crash in eglCreateImageKHR with huge texture size
-  `Bug 93813 <https://bugs.freedesktop.org/show_bug.cgi?id=93813>`__ -
   Incorrect viewport range when GL_CLIP_ORIGIN is GL_UPPER_LEFT
-  `Bug 94050 <https://bugs.freedesktop.org/show_bug.cgi?id=94050>`__ -
   test_vec4_register_coalesce regression
-  `Bug 94073 <https://bugs.freedesktop.org/show_bug.cgi?id=94073>`__ -
   Miscompilation of abs_vec3_vert_xvary_ref.vert in WebGL conformance
-  `Bug 94088 <https://bugs.freedesktop.org/show_bug.cgi?id=94088>`__ -
   [llvmpipe] SIGFPE pthread_barrier_destroy.c:40
-  `Bug 94193 <https://bugs.freedesktop.org/show_bug.cgi?id=94193>`__ -
   [llvmpipe] Line antialiasing looks different when GL_LINE_STIPPLE is
   enabled with pattern 0xffff
-  `Bug 94195 <https://bugs.freedesktop.org/show_bug.cgi?id=94195>`__ -
   [llvmpipe] Does not build with LLVM 3.7.x on Windows
-  `Bug 94388 <https://bugs.freedesktop.org/show_bug.cgi?id=94388>`__ -
   r600_blit.c:281: r600_decompress_depth_textures: Assertion
   \`tex->is_depth && !tex->is_flushing_texture' failed.
-  `Bug 94412 <https://bugs.freedesktop.org/show_bug.cgi?id=94412>`__ -
   Trine 3 misrender
-  `Bug 94481 <https://bugs.freedesktop.org/show_bug.cgi?id=94481>`__ -
   softpipe - access violation in img_filter_2d_nearest
-  `Bug 94595 <https://bugs.freedesktop.org/show_bug.cgi?id=94595>`__ -
   [Mesa AMD&swrast] Texture views attached as framebuffers return their
   viewed tecture's color encoding and render incorrectly
-  `Bug 94954 <https://bugs.freedesktop.org/show_bug.cgi?id=94954>`__ -
   test_vec4_copy_propagation fails in \`make check\`

Changes
-------

Anuj Phogat (1):

-  i965: Fix assert conditions for src/dst x/y offsets

Ben Widawsky (2):

-  i965: Make sure we blit a full compressed block
-  i965/skl: Add two missing device IDs

Brian Paul (1):

-  mesa: fix incorrect viewport position when GL_CLIP_ORIGIN =
   GL_LOWER_LEFT

Chris Forbes (1):

-  i965/blorp: Fix hiz ops on MSAA surfaces

Christian König (1):

-  radeon/uvd: disable MPEG1

Christian Schmidbauer (1):

-  st/nine: specify WINAPI only for i386 and amd64

Daniel Czarnowski (3):

-  egl_dri2: NULL check for xcb_dri2_get_buffers_reply()
-  egl_dri2: set correct error code if swapbuffers fails
-  egl: support EGL_LARGEST_PBUFFER in eglCreatePbufferSurface(...)

Dave Airlie (1):

-  mesa/fbobject: propogate Layered when reusing attachments.

Derek Foreman (1):

-  egl/wayland: Try to use wl_surface.damage_buffer for
   SwapBuffersWithDamage

Dongwon Kim (1):

-  egl: move Null check to eglGetSyncAttribKHR to prevent Segfault

Emil Velikov (10):

-  docs: add sha256 checksums for 11.1.2
-  get-pick-list.sh: Require explicit "11.1" for nominating stable
   patches
-  cherry-ignore: do not pick nv50/ir commit
-  automake: add nine to make distcheck
-  install-gallium-links: port changes from install-lib-links
-  automake: add more missing options for make distcheck
-  mesa; add get-extra-pick-list.sh script into bin/
-  egl/x11: check the return value of xcb_dri2_get_buffers_reply()
-  nvc/ir: remove duplicate variable declaration
-  Update version to 11.1.3

Francisco Jerez (4):

-  i965: Reupload push and pull constants when we get new shader image
   unit state.
-  i965/fs: Add missing analysis invalidation in opt_sampler_eot().
-  i965/fs: Add missing analysis invalidation in fixup_3src_null_dest().
-  i965/vec4: Consider removal of no-op MOVs as progress during register
   coalesce.

Ilia Mirkin (21):

-  nvc0/ir: fix converting between predicate and gpr
-  nvc0: add some missing PUSH_SPACE's
-  nvc0: avoid negatives in PUSH_SPACE argument
-  glsl: make sure builtins are initialized before getting the shader
-  glsl: return cloned signature, not the builtin one
-  nv50/ir: fix quadop emission in the presence of predication
-  st/mesa: fix up result_src.type when doing i2u/u2i conversions
-  meta/copy_image: use precomputed dst_internal_format to avoid
   segfault
-  st/mesa: force depth mode to GL_RED for sized depth/stencil formats
-  glx: update to updated version of EXT_create_context_es2_profile
-  nv50,nvc0: bump minimum texture buffer offset alignment
-  nvc0: reset TFB bufctx when we no longer hold a reference to the
   buffers
-  glsl: avoid stack smashing when there are too many attributes
-  nvc0: fix blit triangle size to fully cover FB's > 8192x8192
-  nv50: reset TFB bufctx when we no longer hold a reference to the
   buffers
-  nv50/ir: force-enable derivatives on TXD ops
-  st/mesa: only minify depth for 3d targets
-  nv50/ir: fix indirect texturing for non-array textures on nvc0
-  nvc0/ir: fix picking of coordinates from tex instruction for
   textureGrad
-  nvc0: disable primitive restart and index bias during blits
-  nv50/ir: we can't load local memory directly into an output

Jason Ekstrand (1):

-  nir/lower_vec_to_movs: Better report channels handled by insert_mov

Kenneth Graunke (3):

-  mesa: Make glGet queries initialize ctx->Debug when necessary.
-  mesa: Allow Get*() of several forgotten IsEnabled() pnames.
-  i965: Only magnify depth for 3D textures, not array textures.

Koop Mast (1):

-  st/clover: Add libelf cflags to the build

Marc-André Lureau (1):

-  virtio_gpu: Add virtio 1.0 PCI ID to driver map

Marek Olšák (3):

-  radeonsi: fix Hyper-Z on Stoney
-  gallium/radeon: don't use temporary buffers for persistent mappings
-  radeonsi: fix Hyper-Z hangs on P2 configs

Matt Turner (3):

-  i965/vec4: don't copy ATTR into 3src instructions with complex
   swizzles
-  i965/fs: Don't CSE negated multiplies with saturation.
-  i965/vec4: Update vec4 unit tests for commit 01dacc83ff.

Nanley Chery (2):

-  mesa/image: Make \_mesa_clip_readpixels() work with renderbuffers
-  mesa/readpix: Clip ReadPixels() area to the ReadBuffer's

Nicolai Hähnle (2):

-  r600g: clear compressed_depthtex/colortex_mask when binding buffer
   texture
-  st/mesa: use the texture view's format for render-to-texture

Nishanth Peethambaran (2):

-  st/omx: Remove trailing spaces
-  st/omx/dec: Correct the timestamping

Oded Gabbay (8):

-  gallium/radeon: Correctly translate colorswaps for big endian
-  llvmpipe: use vpkswss when dst is signed
-  gallium/radeon: return correct values for BE in
   r600_translate_colorswap
-  gallium/radeon: remove separate BE path in r600_translate_colorswap
-  gallium/r600: Don't let h/w do endian swap for colorformat
-  gallium/radeon: disable evergreen_do_fast_color_clear for BE
-  r600g: Do colorformat endian swap for PIPE_USAGE_STAGING
-  radeonsi: Do colorformat endian swap for PIPE_USAGE_STAGING

Olivier Pena (1):

-  scons: support for LLVM 3.7.

Patrick Baggett (1):

-  mesa: Use SSE prefetch instructions rather than 3DNow instructions

Rob Herring (10):

-  Android: remove dependence on .SECONDEXPANSION
-  Android: glsl: fix dependence on YACC_HEADER_SUFFIX from build system
-  Android: add -Wno-date-time flag for clang
-  Android: remove headers from LOCAL_SRC_FILES
-  Android: clean-up and fix DRI module path handling
-  freedreno: drop unnecessary -Wno-packed-bitfield-compat
-  gallium/radeon: Add space between string literal and identifier
-  r600: Make enum alu_op_flags unsigned
-  virtio_gpu: Add PCI ID to driver map
-  Android: fix x86 gallium builds

Roland Scheidegger (2):

-  softpipe: fix anisotropic filtering crash
-  draw: fix line stippling

Samuel Pitoiset (1):

-  nvc0: make sure to delete samplers used by compute shaders

Steinar H. Gunderson (1):

-  mesa: Fix locking of GLsync objects.

Tamil velan (1):

-  radeon/uvd: increase max height to 4096 for VI and newer

Thomas Hellstrom (2):

-  winsys/svga: Fix an uninitialized return value
-  winsys/svga: Increase the fence timeout

Vinson Lee (1):

-  llvmpipe: Do not use barriers if not using threads.

xavier (1):

-  r600/sb: Do not distribute neg in expr_handler::fold_assoc() when
   folding multiplications.
