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

Jason 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
