Mesa 10.4.3 Release Notes / January 24, 2015
============================================

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

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

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

::

   c53eaafc83d9c6315f63e0904d9954d929b841b0b2be7a328eeb6e14f1376129  MesaLib-10.4.3.tar.gz
   ef6ecc9c2f36c9f78d1662382a69ae961f38f03af3a0c3268e53f351aa1978ad  MesaLib-10.4.3.tar.bz2
   179325fc8ec66529d3b0d0c43ef61a33a44d91daa126c3bbdd1efdfd25a7db1d  MesaLib-10.4.3.zip

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

None

Bug fixes
---------

This list is likely incomplete.

-  `Bug 80568 <https://bugs.freedesktop.org/show_bug.cgi?id=80568>`__ -
   [gen4] GPU Crash During Google Chrome Operation
-  `Bug 85367 <https://bugs.freedesktop.org/show_bug.cgi?id=85367>`__ -
   [gen4] GPU hang in glmark-es2
-  `Bug 85696 <https://bugs.freedesktop.org/show_bug.cgi?id=85696>`__ -
   r600g+nine: Bioshock shader failure after
   7b1c0cbc90d456384b0950ad21faa3c61a6b43ff
-  `Bug 88219 <https://bugs.freedesktop.org/show_bug.cgi?id=88219>`__ -
   include/c11/threads_posix.h:197: undefined reference to
   \`pthread_mutex_lock'

Changes
-------

Axel Davy (39):

-  st/nine: Add new texture format strings
-  st/nine: Correctly advertise D3DPMISCCAPS_CLIPTLVERTS
-  st/nine: NineBaseTexture9: fix setting of last_layer
-  st/nine: CubeTexture: fix GetLevelDesc
-  st/nine: Fix crash when deleting non-implicit swapchain
-  st/nine: Return D3DERR_INVALIDCALL when trying to create a texture of
   bad format
-  st/nine: NineBaseTexture9: update sampler view creation
-  st/nine: Check if srgb format is supported before trying to use it.
-  st/nine: Add ATI1 and ATI2 support
-  st/nine: Rework of boolean constants
-  st/nine: Convert integer constants to floats before storing them when
   cards don't support integers
-  st/nine: Remove some shader unused code
-  st/nine: Saturate oFog and oPts vs outputs
-  st/nine: Correctly declare NineTranslateInstruction_Mkxn inputs
-  st/nine: Fix typo for M4x4
-  st/nine: Fix POW implementation
-  st/nine: Handle RSQ special cases
-  st/nine: Handle NRM with input of null norm
-  st/nine: Correct LOG on negative values
-  st/nine: Rewrite LOOP implementation, and a0 aL handling
-  st/nine: Fix CND implementation
-  st/nine: Clamp ps 1.X constants
-  st/nine: Fix some fixed function pipeline operation
-  st/nine: Implement TEXCOORD special behaviours
-  st/nine: Fill missing dst and src number for some instructions.
-  st/nine: Fix TEXM3x3 and implement TEXM3x3VSPEC
-  st/nine: implement TEXM3x2DEPTH
-  st/nine: Implement TEXM3x2TEX
-  st/nine: Implement TEXM3x3SPEC
-  st/nine: Implement TEXDEPTH
-  st/nine: Implement TEXDP3
-  st/nine: Implement TEXDP3TEX
-  st/nine: Implement TEXREG2AR, TEXREG2GB and TEXREG2RGB
-  st/nine: Correct rules for relative adressing and constants.
-  st/nine: Remove unused code for ps
-  st/nine: Fix sm3 relative addressing for non-debug build
-  st/nine: Add variables containing the size of the constant buffers
-  st/nine: Allocate the correct size for the user constant buffer
-  st/nine: Allocate vs constbuf buffer for indirect addressing once.

Emil Velikov (2):

-  docs: Add sha256 sums for the 10.4.2 release
-  Update version to 10.4.3

Jason Ekstrand (1):

-  mesa: Fix clamping to -1.0 in snorm_to_float

Jonathan Gray (1):

-  glsl: Link glsl_test with pthreads library.

Jose Fonseca (1):

-  nine: Drop use of TGSI_OPCODE_CND.

Kenneth Graunke (2):

-  i965: Respect the no_8 flag on Gen6, not just Gen7+.
-  i965: Work around mysterious Gen4 GPU hangs with minimal state
   changes.

Stanislaw Halik (1):

-  st/nine: Hack to generate resource if it doesn't exist when getting
   view

Xavier Bouchoux (3):

-  st/nine: Additional defines to d3dtypes.h
-  st/nine: Add missing c++ declaration for IDirect3DVolumeTexture9
-  st/nine: Fix D3DRS_POINTSPRITE support
