# The Mesa 3D Graphics Library

# Mesa 12.0.4 Release Notes / November 10, 2016

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

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

    22026ce4f1c6a7908b0d10ff057decec0a5633afe7f38a0cef5c08d0689f02a6 mesa-12.0.4.tar.gz
    5d6003da867d3f54e5000b4acdfc37e6cce5b6a4459274fdad73e24bd2f0065e mesa-12.0.4.tar.xz

## New features

None

## Bug fixes

This list is likely incomplete.

- Bug 71759 - Intel driver fails with "intel_do_flush_locked failed: No such file or directory" if buffer imported with EGL_NATIVE_PIXMAP_KHR
- Bug 94354 - R9285 Unigine Valley perf regression since radeonsi: use re-Z
- Bug 96770 - include/GL/mesa_glinterop.h:62: error: redefinition of typedef ‘GLXContext’
- Bug 97231 - GL_DEPTH_CLAMP doesn't clamp to the far plane
- Bug 97233 - vkQuake VkSpecializationMapEntry related bug
- Bug 97260 - R9 290 low performance in Linux 4.7
- Bug 97549 - [SNB, BXT] up to 40% perf drop from "loader/dri3: Overhaul dri3_update_num_back" commit
- Bug 97887 - llvm segfault in janusvr -render vive
- Bug 98025 - [radeonsi] incorrect primitive restart index used
- Bug 98134 - dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.draw_buffers wants a different GL error code
- Bug 98326 - [dEQP, EGL] pbuffer depth/stencil tests fail

## Changes

Axel Davy (4):

- gallium/util: Really allow aliasing of dst for u_box_union_*
- st/nine: Fix the calculation of the number of vs inputs
- st/nine: Fix mistake in Volume9 UnlockBox
- st/nine: Fix locking CubeTexture surfaces.

Brendan King (1):

- configure.ac: fix the name of the Wayland Scanner pc file

Brian Paul (1):

- st/mesa: fix swizzle issue in st_create_sampler_view_from_stobj()

Chad Versace (3):

- egl: Fix truncation error in _eglParseSyncAttribList64
- i965/sync: Fix uninitalized usage and leak of mutex
- egl: Don't advertise unsupported platform extensions

Chuanbo Weng (1):

- gbm: fix potential NULL deref of mapImage/unmapImage.

Chuck Atkins (1):

- autoconf: Make header install distinct for various APIs (v2)

Dave Airlie (3):

- anv: initialise and increment send_sbc
- anv/wsi: fix apps that acquire multiple images up front
- Revert "st/vdpau: use linear layout for output surfaces"

Emil Velikov (12):

- docs: add sha256 checksums for 12.0.3
- cherry-ignore: add non-applicable i965 commit
- cherry-ignore: add vaapi encode fix
- cherry-ignore: add EGL_KHR_debug fix
- cherry-ignore: add update_renderbuffer_read_surfaces()
- isl/gen6: correctly check msaa layout samples count
- egl/x11: don't crash if dri2_dpy->conn is NULL
- get-pick-list.sh: Require explicit "12.0" for nominating stable patches
- automake: don't forget to pick wglext.h in the tarball
- cherry-ignore: add N/A EGL revert
- cherry-ignore: add ClientWaitSync fixes
- Update version to 12.0.4

Eric Anholt (5):

- travis: Parse configure.ac to pick an updated LIBDRM_VERSION.
- travis: Update to the Ubuntu Trusty image.
- travis: Enable vc4 in libdrm to satisfy vc4 test build dependency.
- travis: Upgrade LLVM dependency to 3.5 and enable LLVM drivers.
- gallium: Fix install-gallium-links.mk on non-bash /bin/sh

Hans de Goede (1):

- pipe_loader_sw: Fix fd leak when instantiated via pipe_loader_sw_probe_kms

Ian Romanick (1):

- glsl: Fix cut-and-paste bug in hierarchical visitor ir_expression::accept

Ilia Mirkin (16):

- nv30: set usage to staging so that the buffer is allocated in GART
- a3xx: make sure to actually clamp depth as requested
- a3xx: make use of software clipping when hw can't handle it
- a3xx: use window scissor to simulate viewport xy clip
- main: GL_RGB10_A2UI does not come with GL 3.0/EXT_texture_integer
- mesa/formatquery: limit ES target support, fix core context support
- nir: fix definition of pack_uvec2_to_uint
- gm107/ir: AL2P writes to a predicate register
- st/mesa: fix is_scissor_enabled when X/Y are negative
- nvc0/ir: fix overwriting of value backing non-constant gather offset
- nv50/ir: copy over value's register id when resolving merge of a phi
- nvc0/ir: fix textureGather with a single offset
- gm107/ir: fix texturing with indirect samplers
- gm107/ir: fix bit offset of tex lod setting for indirect texturing
- nv50,nvc0: avoid reading out of bounds when getting bogus so info
- nv50/ir: process texture offset sources as regular sources

James Legg (1):

- radeonsi: Fix primitive restart when index changes

Jason Ekstrand (9):

- nir/spirv: Swap the argument order for AtomicCompareExchange
- nir/spirv: Use the correct sources for CompareExchange on images
- nir/spirv: Break variable decoration handling into a helper
- nir/spirv: Refactor variable deocration handling
- nir/spirv/cfg: Handle switches whose break block is a loop continue
- nir/spirv/cfg: Detect switch_break after loop_break/continue
- nir: Add a nop intrinsic
- nir/spirv/cfg: Use a nop intrinsic for tagging the ends of blocks
- intel/blorp: Rework our usage of ralloc when compiling shaders

Jonathan Gray (3):

- genxml: add generated headers to EXTRA_DIST
- mapi: automake: set VISIBILITY_CFLAGS for shared glapi
- mesa: automake: include mesa_glinterop.h in distfile

Julien Isorce (1):

- st/va: also honors interlaced preference when providing a video format

Kenneth Graunke (8):

- nir: Call nir_metadata_preserve from nir_lower_alu_to_scalar().
- mesa: Expose RESET_NOTIFICATION_STRATEGY with KHR_robustness.
- i965: Fix missing _NEW_TRANSFORM in Gen8+ 3DSTATE_DS atom.
- i965: Add missing BRW_NEW_VS_PROG_DATA to 3DSTATE_CLIP.
- i965: Move BRW_NEW_FRAGMENT_PROGRAM from 3DSTATE_PS to PS_EXTRA.
- i965: Add missing BRW_NEW_CS_PROG_DATA to compute constant atom.
- i965: Add missing BRW_CS_PROG_DATA to CS work group surface atom.
- i965: Fix gl_InvocationID in dual object GS where invocations == 1.

Marek Olšák (12):

- radeonsi: fix cubemaps viewed as 2D
- radeonsi: take compute shader and dispatch indirect memory usage into account
- radeonsi: fix FP64 UBO loads with indirect uniform block indexing
- mesa: fix glGetFramebufferAttachmentParameteriv w/ on-demand FRONT_BACK alloc
- radeonsi: fix interpolateAt opcodes for .zw components
- radeonsi: fix texture border colors for compute shaders
- radeonsi: disable ReZ
- gallium/radeon: make sure the address of separate CMASK is aligned properly
- winsys/amdgpu: fix radeon_surf::macro_tile_index for imported textures
- egl: use util/macros.h
- egl: make interop ABI visible again
- glx: make interop ABI visible again

Mario Kleiner (1):

- glx: Perform check for valid fbconfig against proper X-Screen.

Martin Peres (2):

- loader/dri3: add get_dri_screen() to the vtable
- loader/dri3: import prime buffers in the currently-bound screen

Matt Whitlock (5):

- egl/android: replace call to dup(2) with fcntl(F_DUPFD_CLOEXEC)
- gallium/auxiliary: replace call to dup(2) with fcntl(F_DUPFD_CLOEXEC)
- st/dri: replace calls to dup(2) with fcntl(F_DUPFD_CLOEXEC)
- st/xa: replace call to dup(2) with fcntl(F_DUPFD_CLOEXEC)
- gallium/winsys: replace calls to dup(2) with fcntl(F_DUPFD_CLOEXEC)

Max Staudt (1):

- r300g: Set R300_VAP_CNTL on RSxxx to avoid triangle flickering

Michel Dänzer (1):

- loader/dri3: Overhaul dri3_update_num_back

Nicholas Bishop (2):

- gbm: return appropriate error when queryImage() fails
- st/dri: check pipe_screen->resource_get_handle() return value

Nicolai Hähnle (10):

- gallium/radeon: cleanup and fix branch emits
- st/glsl_to_tgsi: disable on-the-fly peephole for 64-bit operations
- st/glsl_to_tgsi: simplify translate_tex_offset
- st/glsl_to_tgsi: fix textureGatherOffset with indirectly loaded offsets
- st/mesa: fix vertex elements setup for doubles
- radeonsi: fix indirect loads of 64 bit constants
- st/glsl_to_tgsi: fix atomic counter addressing
- st/glsl_to_tgsi: fix block copies of arrays of doubles
- st/mesa: only set primitive_restart when the restart index is in range
- radeonsi: fix 64-bit loads from LDS

Samuel Pitoiset (4):

- nvc0/ir: fix subops for IMAD
- gk110/ir: fix wrong emission of OP_NOT
- nvc0: use correct bufctx when invalidating CP textures
- nvc0/ir: fix emission of IMAD with NEG modifiers

Stencel, Joanna (1):

- egl/wayland: add missing destroy_window callback

Tapani Pälli (5):

- egl: stop claiming support for pbuffer + msaa
- egl/dri2: set max values for pbuffer width and height
- egl: add check that eglCreateContext gets a valid config
- mesa: fix error handling in DrawBuffers
- egl: set preserved behavior for surface only if config supports it

Tim Rowley (1):

- configure.ac: add llvm inteljitevents component if enabled

Vedran Miletić (1):

- clover: Fix build against clang SVN >= r273191

Vinson Lee (1):

- Revert "mesa_glinterop: remove inclusion of GLX header"