Mesa 12.0.2 Release Notes / September 2, 2016
=============================================

Mesa 12.0.2 is a bug fix release which fixes bugs found since the 12.0.1
release.

Mesa 12.0.2 implements the OpenGL 4.3 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.3. OpenGL 4.3 is **only** available if requested at context creation
because compatibility contexts are not supported.

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

::

   a08565ab1273751ebe2ffa928cbf785056594c803077c9719d0763da780f2918  mesa-12.0.2.tar.gz
   d957a5cc371dcd7ff2aa0d87492f263aece46f79352f4520039b58b1f32552cb  mesa-12.0.2.tar.xz

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

None

Bug fixes
---------

This list is likely incomplete.

-  `Bug 69622 <https://bugs.freedesktop.org/show_bug.cgi?id=69622>`__ -
   eglTerminate then eglMakeCurrent crahes
-  `Bug 89599 <https://bugs.freedesktop.org/show_bug.cgi?id=89599>`__ -
   symbol 'x86_64_entry_start' is already defined when building with
   LLVM/clang
-  `Bug 91342 <https://bugs.freedesktop.org/show_bug.cgi?id=91342>`__ -
   Very dark textures on some objects in indoors environments in Postal
   2
-  `Bug 92306 <https://bugs.freedesktop.org/show_bug.cgi?id=92306>`__ -
   GL Excess demo renders incorrectly on nv43
-  `Bug 94148 <https://bugs.freedesktop.org/show_bug.cgi?id=94148>`__ -
   Framebuffer considered invalid when a draw call is done before
   glCheckFramebufferStatus
-  `Bug 96274 <https://bugs.freedesktop.org/show_bug.cgi?id=96274>`__ -
   [NVC0] Failure when compiling compute shader: Assertion
   \`bb->getFirst()->serial <= bb->getExit()->serial' failed
-  `Bug 96358 <https://bugs.freedesktop.org/show_bug.cgi?id=96358>`__ -
   SSO: wrong interface validation between GS and VS (regresion due to
   latest gles 3.1)
-  `Bug 96381 <https://bugs.freedesktop.org/show_bug.cgi?id=96381>`__ -
   Texture artifacts with immutable texture storage and mipmaps
-  `Bug 96762 <https://bugs.freedesktop.org/show_bug.cgi?id=96762>`__ -
   [radeonsi,apitrace] Firewatch: nothing rendered in scrollable (text)
   areas
-  `Bug 96835 <https://bugs.freedesktop.org/show_bug.cgi?id=96835>`__ -
   "gallium: Force blend color to 16-byte alignment" crash with
   "-march=native -O3" causes some 32bit games to crash
-  `Bug 96850 <https://bugs.freedesktop.org/show_bug.cgi?id=96850>`__ -
   Crucible tests fail for 32bit mesa
-  `Bug 96908 <https://bugs.freedesktop.org/show_bug.cgi?id=96908>`__ -
   [radeonsi] MSAA causes graphical artifacts
-  `Bug 96911 <https://bugs.freedesktop.org/show_bug.cgi?id=96911>`__ -
   webgl2 conformance2/textures/misc/tex-mipmap-levels.html crashes 12.1
   Intel driver
-  `Bug 96971 <https://bugs.freedesktop.org/show_bug.cgi?id=96971>`__ -
   invariant qualifier is not valid for shader inputs
-  `Bug 97039 <https://bugs.freedesktop.org/show_bug.cgi?id=97039>`__ -
   The Talos Principle and Serious Sam 3 GPU faults
-  `Bug 97207 <https://bugs.freedesktop.org/show_bug.cgi?id=97207>`__ -
   [IVY BRIDGE] Fragment shader discard writing to depth
-  `Bug 97214 <https://bugs.freedesktop.org/show_bug.cgi?id=97214>`__ -
   X not running with error "Failed to make EGL context current"
-  `Bug 97225 <https://bugs.freedesktop.org/show_bug.cgi?id=97225>`__ -
   [i965 on HD4600 Haswell] xcom switch to ingame cinematics cause
   segmentation fault
-  `Bug 97231 <https://bugs.freedesktop.org/show_bug.cgi?id=97231>`__ -
   GL_DEPTH_CLAMP doesn't clamp to the far plane
-  `Bug 97307 <https://bugs.freedesktop.org/show_bug.cgi?id=97307>`__ -
   glsl/glcpp/tests/glcpp-test regression
-  `Bug 97331 <https://bugs.freedesktop.org/show_bug.cgi?id=97331>`__ -
   glDrawElementsBaseVertex doesn't work in display list on i915
-  `Bug 97351 <https://bugs.freedesktop.org/show_bug.cgi?id=97351>`__ -
   DrawElementsBaseVertex with VBO ignores base vertex on Intel GMA 9xx
   in some cases
-  `Bug 97426 <https://bugs.freedesktop.org/show_bug.cgi?id=97426>`__ -
   glScissor gives vertically inverted result
-  `Bug 97476 <https://bugs.freedesktop.org/show_bug.cgi?id=97476>`__ -
   Shader binaries should not be stored in the PipelineCache
-  `Bug 97567 <https://bugs.freedesktop.org/show_bug.cgi?id=97567>`__ -
   [SNB, ILK] ctl, piglit regressions in mesa 12.0.2rc1

Changes
-------

Andreas Boll (1):

-  configure.ac: Use ${datarootdir} for --with-vulkan-icddir help string
   too

Bernard Kilarski (1):

-  glx: fix error code when there is no context bound

Brian Paul (4):

-  svga: handle mismatched number of samplers, sampler views
-  mesa: use \_mesa_clear_texture_image() in clear_texture_fields()
-  swrast: fix incorrectly positioned putImage() in swrast driver
-  mesa: fix format conversion bug in get_tex_rgba_uncompressed()

Chad Versace (2):

-  i965: Fix miptree layout for EGLImage-based renderbuffers
-  i965: Respect miptree offsets in intel_readpixels_tiled_memcpy()

Christian König (1):

-  st/mesa: fix reference counting bug in st_vdpau

Chuck Atkins (1):

-  swr: Refactor checks for compiler feature flags

Daniel Scharrer (1):

-  mesa: Fix fixed function spot lighting on newer hardware (again)

Dave Airlie (2):

-  anv: fix writemask on blit fragment shader.
-  st/glsl_to_tgsi: fix st_src_reg_for_double constant.

Emil Velikov (15):

-  docs: add sha256 checksums for 12.0.1
-  mesa: automake: list builddir before srcdir
-  mesa: scons: list builddir before srcdir
-  i965: store reference to the context within struct brw_fence (v2)
-  anv: remove internal 'validate' layer
-  anv: automake: use VISIBILITY_CFLAGS to restrict symbol visibility
-  anv: automake: build with -Bsymbolic
-  anv: do not export the Vulkan API
-  anv: remove dummy VK_DEBUG_MARKER_EXT entry points
-  isl: automake: use VISIBILITY_CFLAGS to restrict symbol visibility
-  cherry-ignore: temporary(?) drop "a4xx: make sure to actually clamp
   depth"
-  i915: Check return value of screen->image.loader->getBuffers
-  Revert "i965/miptree: Set logical_depth0 == 6 for cube maps"
-  glx/glvnd: list the strcmp arguments in correct order
-  Update version to 12.0.2

Eric Anholt (4):

-  vc4: Close our screen's fd on screen close.
-  vc4: Disable early Z with computed depth.
-  vc4: Fix a leak of the src[] array of VPM reads in optimization.
-  vc4: Fix leak of the bo_handles table.

Francisco Jerez (3):

-  i965: Emit SKL VF cache invalidation W/A from
   brw_emit_pipe_control_flush.
-  i965: Make room in the batch epilogue for three more pipe controls.
-  i965: Fix remaining flush vs invalidate race conditions in
   brw_emit_pipe_control_flush.

Haixia Shi (1):

-  platform_android: prevent deadlock in droid_swap_buffers

Ian Romanick (5):

-  mesa: Strip arrayness from interface block names in some IO
   validation
-  glsl: Pack integer and double varyings as flat even if interpolation
   mode is none
-  glcpp: Track the actual version instead of just the version_resolved
   flag
-  glcpp: Only disallow #undef of pre-defined macros on GLSL ES >= 3.00
   shaders
-  glsl: Mark cube map array sampler types as reserved in GLSL ES 3.10

Ilia Mirkin (16):

-  mesa: etc2 online compression is unsupported, don't attempt it
-  st/mesa: return appropriate mesa format for ETC texture formats
-  mesa: set \_NEW_BUFFERS when updating texture bound to current
   buffers
-  nv50,nvc0: srgb rendering is only available for rgba/bgra
-  vbo: allow DrawElementsBaseVertex in display lists
-  gallium/util: add helper to compute zmin/zmax for a viewport state
-  nv50,nvc0: fix depth range when halfz is enabled
-  nv50/ir: fix bb positions after exit instructions
-  vbo: add basevertex when looking up elements for vbo splitting
-  a4xx: only disable depth clipping, not all clipping, when requested
-  nv50/ir: make sure cfg iterator always hits all blocks
-  main: add missing EXTRA_END in OES_sample_variables get check
-  nouveau: always enable at least one RC
-  nv30: only bail on color/depth bpp mismatch when surfaces are
   swizzled
-  a4xx: make sure to actually clamp depth as requested
-  gk110/ir: fix quadop dall emission

Jan Ziak (2):

-  egl/x11: avoid using freed memory if dri2 init fails
-  loader: fix memory leak in loader_dri3_open

Faith Ekstrand (31):

-  nir/spirv: Don't multiply the push constant block size by 4
-  anv: Add a stub for CmdCopyQueryPoolResults on Ivy Bridge
-  glsl/types: Fix function type comparison function
-  glsl/types: Use \_mesa_hash_data for hashing function types
-  genxml: Make gen6-7 blending look more like gen8
-  anv/pipeline: Unify blend state setup between gen7 and gen8
-  anv: Enable independentBlend on gen7
-  anv: Add an align_down_npot_u32 helper
-  anv: Handle VK_WHOLE_SIZE properly for buffer views
-  i965/miptree: Enforce that height == 1 for 1-D array textures
-  i965/miptree: Set logical_depth0 == 6 for cube maps
-  nir: Add a nir_deref_foreach_leaf helper
-  nir/inline: Constant-initialize local variables in the callee if
   needed
-  anv/pipeline: Set up point coord enables
-  i965/miptree: Stop multiplying cube depth by 6 in HiZ calculations
-  i965/vec4: Make opt_vector_float reset at the top of each block
-  anv/blit2d: Add a format parameter to bind_dst and create_iview
-  anv/blit2d: Add support for RGB destinations
-  anv/clear: Make cmd_clear_image take an actual VkClearValue
-  anv/clear: Clear E5B9G9R9 images as R32_UINT
-  anv: Include the pipeline layout in the shader hash
-  isl: Allow multisampled array textures
-  anv/descriptor_set: memset anv_descriptor_set_layout
-  anv/pipeline: Fix bind maps for fragment output arrays
-  anv/allocator: Correctly set the number of buckets
-  anv/pipeline: Properly handle OOM during shader compilation
-  anv: Remove unused fields from anv_pipeline_bind_map
-  anv: Add pipeline_has_stage guards a few places
-  anv: Add a struct for storing a compiled shader
-  anv/pipeline: Add support for caching the push constant map
-  anv: Rework pipeline caching

José Fonseca (2):

-  appveyor: Install pywin32 extensions.
-  appveyor: Force Visual Studio 2013 image.

Kenneth Graunke (21):

-  genxml: Add CLIPMODE\_\* prefix to 3DSTATE_CLIP's "Clip Mode" enum
   values.
-  genxml: Add APIMODE_D3D missing enum values and improve consistency.
-  anv: Fix near plane clipping on Gen7/7.5.
-  anv: Enable early culling on Gen7.
-  anv: Unify 3DSTATE_CLIP code across generations.
-  genxml: Rename "API Rendering Disable" to "Rendering Disable".
-  anv: Properly call gen75_emit_state_base_address on Haswell.
-  i965: Include VUE handles for GS with invocations > 1.
-  nir: Add a base const_index to shared atomic intrinsics.
-  i965: Fix shared atomic intrinsics to pay attention to base.
-  mesa: Add GL_BGRA_EXT to the list of GenerateMipmap internal formats.
-  mesa: Don't call GenerateMipmap if Width or Height == 0.
-  glsl: Delete bogus ir_set_program_inouts assert.
-  glsl: Fix the program resource names of gl_TessLevelOuter/Inner[].
-  glsl: Fix location bias for patch variables.
-  glsl: Fix invariant matching in GLSL 4.30 and GLSL ES 1.00.
-  mesa: Fix uf10_to_f32() scale factor in the E == 0 and M != 0 case.
-  nir/builder: Add bany_inequal and bany helpers.
-  i965: Implement the WaPreventHSTessLevelsInterference workaround.
-  i965: Fix execution size of scalar TCS barrier setup code.
-  i965: Fix barrier count shift in scalar TCS backend.

Leo Liu (2):

-  st/omx/enc: check uninitialized list from task release
-  vl/dri3: fix a memory leak from front buffer

Marek Olšák (7):

-  glsl_to_tgsi: don't use the negate modifier in integer ops after
   bitcast
-  radeonsi: add a workaround for a compute VGPR-usage LLVM bug
-  winsys/amdgpu: disallow DCC with mipmaps
-  gallium/util: fix align64
-  radeonsi: only set dual source blending for MRT0
-  radeonsi: fix VM faults due NULL internal const buffers on CIK
-  radeonsi: disable SDMA texture copying on Carrizo

Matt Turner (4):

-  mapi: Massage code to allow clang to compile.
-  i965/vec4: Ignore swizzle of VGRF for use by var_range_end().
-  mesa: Use AC_HEADER_MAJOR to include correct header for major().
-  nir: Walk blocks in source code order in lower_vars_to_ssa.

Michel Dänzer (1):

-  glx: Don't use current context in \__glXSendError

Miklós Máté (1):

-  vbo: set draw_id

Nanley Chery (5):

-  anv/descriptor_set: Fix binding partly undefined descriptor sets
-  isl: Fix assert on raw buffer surface state size
-  anv/device: Fix max buffer range limits
-  isl: Fix isl_tiling_is_any_y()
-  anv/gen7_pipeline: Set PixelShaderKillPixel for discards

Nicolai Hähnle (7):

-  radeonsi: explicitly choose center locations for 1xAA on Polaris
-  radeonsi: fix Polaris MSAA regression
-  radeonsi: ensure sample locations are set for line and polygon
   smoothing
-  st_glsl_to_tgsi: only skip over slots of an input array that are
   present
-  glsl: fix optimization of discard nested multiple levels
-  radeonsi: flush TC L2 cache for indirect draw data
-  radeonsi: add si_set_rw_buffer to be used for internal descriptors

Nicolas Boichat (6):

-  egl/dri2: dri2_make_current: Set EGL error if bindContext fails
-  egl/wayland: Set disp->DriverData to NULL on error
-  egl/surfaceless: Set disp->DriverData to NULL on error
-  egl/drm: Set disp->DriverData to NULL on error
-  egl/android: Set dpy->DriverData to NULL on error
-  egl/dri2: Add reference count for dri2_egl_display

Rob Herring (3):

-  Android: add missing u_math.h include path for libmesa_isl
-  vc4: fix vc4_resource_from_handle() stride calculation
-  vc4: add hash table look-up for exported dmabufs

Samuel Pitoiset (7):

-  nvc0/ir: fix images indirect access on Fermi
-  nvc0: fix the driver cb size when draw parameters are used
-  gm107/ir: add missing NEG modifier for IADD32I
-  gm107/ir: make use of ADD32I for all immediates
-  nvc0: upload sample locations on GM20x
-  nvc0: invalidate textures/samplers on GK104+
-  nv50/ir: always emit the NDV bit for OP_QUADOP

Stefan Dirsch (1):

-  Avoid overflow in 'last' variable of FindGLXFunction(...)

Stencel, Joanna (1):

-  egl/wayland-egl: Fix for segfault in dri2_wl_destroy_surface.

Tim Rowley (2):

-  Revert "gallium: Force blend color to 16-byte alignment"
-  swr: switch from overriding -march to selecting features

Tomasz Figa (8):

-  gallium/dri: Add shared glapi to LIBADD on Android
-  egl/android: Remove unused variables
-  egl/android: Check return value of dri2_get_dri_config()
-  egl/android: Stop leaking DRI images
-  gallium/winsys/kms: Fix double refcount when importing from prime FD
   (v2)
-  gallium/winsys/kms: Fully initialize kms_sw_dt at prime import time
   (v2)
-  gallium/winsys/kms: Move display target handle lookup to separate
   function
-  gallium/winsys/kms: Look up the GEM handle after importing a prime FD
