Mesa 10.3.3 Release Notes / November 8, 2014
============================================

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

Mesa 10.3.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
----------------

::

   23a0c36d88cd5d8968ae6454160de2878192fd1d37b5d606adca1f1b7e788b79  MesaLib-10.3.3.tar.gz
   0e4eee4a2ddf86456eed2fc44da367f95471f74249636710491e85cc256c4753  MesaLib-10.3.3.tar.bz2
   a83648f17d776b7cf6c813fbb15782d2644b937dc6a7c53d8c0d1b35411f4840  MesaLib-10.3.3.zip

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

None

Bug fixes
---------

This list is likely incomplete.

-  `Bug 70410 <https://bugs.freedesktop.org/show_bug.cgi?id=70410>`__ -
   egl-static/Makefile: linking fails with llvm >= 3.4
-  `Bug 82921 <https://bugs.freedesktop.org/show_bug.cgi?id=82921>`__ -
   layout(location=0) emits error >= MAX_UNIFORM_LOCATIONS due to
   integer underflow
-  `Bug 83574 <https://bugs.freedesktop.org/show_bug.cgi?id=83574>`__ -
   [llvmpipe] [softpipe] piglit
   arb_explicit_uniform_location-use-of-unused-loc regression
-  `Bug 85454 <https://bugs.freedesktop.org/show_bug.cgi?id=85454>`__ -
   Unigine Sanctuary with Wine crashes on Mesa Git
-  `Bug 85918 <https://bugs.freedesktop.org/show_bug.cgi?id=85918>`__ -
   Mesa: MSVC 2010/2012 Compile error

Changes
-------

Anuj Phogat (2):

-  glsl: Fix crash due to negative array index
-  glsl: Use signed array index in update_max_array_access()

Brian Paul (1):

-  mesa: fix UNCLAMPED_FLOAT_TO_UBYTE() macro for MSVC

Emil Velikov (2):

-  docs: Add sha256 sums for the 10.3.2 release
-  Update version to 10.3.3

Ilia Mirkin (27):

-  freedreno/ir3: fix FSLT/etc handling to return 0/-1 instead of 0/1.0
-  freedreno/ir3: INEG operates on src0, not src1
-  freedreno/ir3: add UARL support
-  freedreno/ir3: negate result of USLT/etc
-  freedreno/ir3: use unsigned comparison for UIF
-  freedreno/ir3: add TXL support
-  freedreno/ir3: fix UCMP handling
-  freedreno/ir3: implement UMUL correctly
-  freedreno: add default .dir-locals.el for emacs settings
-  freedreno/ir3: make texture instruction construction more dynamic
-  freedreno/ir3: fix TXB/TXL to actually pull the bias/lod argument
-  freedreno/ir3: add TXQ support
-  freedreno/ir3: add TXB2 support
-  freedreno: dual-source render targets are not supported
-  freedreno: instanced drawing/compute not yet supported
-  freedreno/ir3: avoid fan-in sources referring to same instruction
-  freedreno/ir3: add IDIV/UDIV support
-  freedreno/ir3: add UMOD support, based on UDIV
-  freedreno/ir3: add MOD support
-  freedreno/ir3: add ISSG support
-  freedreno/ir3: add UMAD support
-  freedreno/ir3: make TXQ return integers, not floats
-  freedreno/ir3: shadow comes before array
-  freedreno/ir3: add texture offset support
-  freedreno/ir3: add TXD support and expose ARB_shader_texture_lod
-  freedreno/ir3: add TXF support
-  freedreno: positions come out as integers, not half-integers

Jan Vesely (1):

-  configure: include llvm systemlibs when using static llvm

Marek Olšák (5):

-  r600g: fix polygon mode for points and lines and point/line fill
   modes
-  radeonsi: fix polygon mode for points and lines and point/line fill
   modes
-  radeonsi: fix incorrect index buffer max size for lowered 8-bit
   indices
-  Revert "st/mesa: set MaxUnrollIterations = 255"
-  r300g: remove enabled/disabled hyperz and AA compression messages

Mauro Rossi (1):

-  gallium/nouveau: fully build the driver under android

Michel Dänzer (1):

-  radeon/llvm: Dynamically allocate branch/loop stack arrays

Rob Clark (62):

-  freedreno/ir3: detect scheduler fail
-  freedreno/ir3: add TXB
-  freedreno/ir3: add DDX/DDY
-  freedreno/ir3: bit of debug
-  freedreno/ir3: fix error in bail logic
-  freedreno/ir3: fix constlen with relative addressing
-  freedreno/ir3: add no-copy-propagate fallback step
-  freedreno: don't overflow cmdstream buffer so much
-  freedreno/ir3: fix potential segfault in RA
-  freedreno: update generated headers
-  freedreno/a3xx: enable hw primitive-restart
-  freedreno/a3xx: handle rendering to layer != 0
-  freedreno: update generated headers
-  freedreno/a3xx: format fixes
-  util/u_format: add \_is_alpha()
-  freedreno/a3xx: alpha render-target shenanigans
-  freedreno/ir3: catch incorrect usage of tmp-dst
-  freedreno/ir3: add missing put_dst
-  freedreno: "fix" problems with excessive flushes
-  freedreno: update generated headers
-  freedreno/a3xx: 3d/array textures
-  freedreno: add DRM_CONF_SHARE_FD
-  freedreno/a3xx: more texture array fixes
-  freedreno/a3xx: initial texture border-color
-  freedreno: fix compiler warning
-  freedreno: don't advertise mirror-clamp support
-  freedreno: update generated headers
-  freedreno: we have more than 0 viewports!
-  freedreno: turn missing caps into compile warnings
-  freedreno/a3xx: add LOD_BIAS
-  freedreno/a3xx: add flat interpolation mode
-  freedreno/a3xx: add 32bit integer vtx formats
-  freedreno/a3xx: fix border color order
-  freedreno: move bind_sampler_states to per-generation
-  freedreno: add texcoord clamp support to lowering
-  freedreno/a3xx: add support to emulate GL_CLAMP
-  freedreno/a3xx: re-emit shaders on variant change
-  freedreno/lowering: fix token calculation for lowering
-  freedreno: destroy transfer pool after blitter
-  freedreno: max-texture-lod-bias should be 15.0f
-  freedreno: update generated headers
-  freedreno/a3xx: handle large shader program sizes
-  freedreno/a3xx: emit all immediates in one shot
-  freedreno/ir3: fix lockups with lame FRAG shaders
-  freedreno/a3xx: handle VS only outputting BCOLOR
-  freedreno: query fixes
-  freedreno/a3xx: refactor vertex state emit
-  freedreno/a3xx: refactor/optimize emit
-  freedreno/ir3: optimize shader key comparision
-  freedreno: inline fd_draw_emit()
-  freedreno: fix layer_stride
-  freedreno: update generated headers
-  freedreno/ir3: large const support
-  freedreno/a3xx: more layer/level fixes
-  freedreno/ir3: comment + better fxn name
-  freedreno/ir3: fix potential gpu lockup with kill
-  freedreno/a3xx: disable early-z when we have kill's
-  freedreno/ir3: add debug flag to disable cp
-  freedreno: clear vs scissor
-  freedreno: mark scissor state dirty when enable bit changes
-  freedreno/a3xx: fix viewport state during clear
-  freedreno/a3xx: fix depth/stencil restore format

Tapani Pälli (2):

-  glsl: fix uniform location count used for glsl types
-  mesa: check that uniform exists in glUniform\* functions
