[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

mesa: Changes to 'upstream-unstable'



 Android.common.mk                                             |    4 
 Android.mk                                                    |    4 
 Makefile.am                                                   |    7 
 VERSION                                                       |    2 
 bin/.cherry-ignore                                            |    3 
 bin/get-extra-pick-list.sh                                    |   35 +
 bin/get-pick-list.sh                                          |    2 
 docs/relnotes/11.1.2.html                                     |    3 
 docs/relnotes/11.1.3.html                                     |  318 ++++++++++
 include/D3D9/d3d9types.h                                      |   16 
 include/pci_ids/i965_pci_ids.h                                |    2 
 include/pci_ids/virtio_gpu_pci_ids.h                          |    2 
 install-gallium-links.mk                                      |   15 
 scons/llvm.py                                                 |   14 
 src/egl/Android.mk                                            |    7 
 src/egl/drivers/dri2/platform_wayland.c                       |   39 +
 src/egl/drivers/dri2/platform_x11.c                           |   12 
 src/egl/main/eglapi.c                                         |   10 
 src/egl/main/eglconfig.c                                      |    1 
 src/egl/main/egldefines.h                                     |    7 
 src/egl/main/eglsurface.c                                     |    6 
 src/egl/main/eglsync.c                                        |    3 
 src/gallium/auxiliary/draw/draw_pipe_stipple.c                |   30 
 src/gallium/auxiliary/gallivm/lp_bld_pack.c                   |   31 
 src/gallium/drivers/freedreno/Android.mk                      |    4 
 src/gallium/drivers/llvmpipe/lp_rast.c                        |    8 
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp    |   10 
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp    |   41 -
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp     |    9 
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp     |   10 
 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp |    4 
 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp |   22 
 src/gallium/drivers/nouveau/nv50/nv50_screen.c                |    2 
 src/gallium/drivers/nouveau/nv50/nv50_shader_state.c          |    2 
 src/gallium/drivers/nouveau/nv50/nv50_state.c                 |    4 
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c                |    2 
 src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c          |    1 
 src/gallium/drivers/nouveau/nvc0/nvc0_state.c                 |    6 
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c               |   19 
 src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c                   |   11 
 src/gallium/drivers/r600/evergreen_state.c                    |   13 
 src/gallium/drivers/r600/r600_isa.h                           |   16 
 src/gallium/drivers/r600/r600_state.c                         |    6 
 src/gallium/drivers/r600/r600_state_common.c                  |   31 
 src/gallium/drivers/r600/sb/sb_expr.cpp                       |    8 
 src/gallium/drivers/radeon/r600_buffer_common.c               |    6 
 src/gallium/drivers/radeon/r600_pipe_common.h                 |    2 
 src/gallium/drivers/radeon/r600_texture.c                     |   19 
 src/gallium/drivers/radeon/radeon_video.c                     |    3 
 src/gallium/drivers/radeonsi/si_state.c                       |    6 
 src/gallium/drivers/softpipe/sp_tex_sample.c                  |    9 
 src/gallium/state_trackers/clover/Makefile.am                 |    1 
 src/gallium/state_trackers/omx/vid_dec.c                      |   21 
 src/gallium/state_trackers/omx/vid_dec.h                      |    7 
 src/gallium/state_trackers/omx/vid_dec_h264.c                 |   26 
 src/gallium/state_trackers/omx/vid_dec_mpeg12.c               |    6 
 src/gallium/state_trackers/omx/vid_enc.c                      |   44 -
 src/gallium/targets/dri/Android.mk                            |    3 
 src/gallium/targets/opencl/Makefile.am                        |    3 
 src/gallium/winsys/svga/drm/vmw_screen_ioctl.c                |    3 
 src/gallium/winsys/svga/drm/vmw_surface.c                     |    2 
 src/glsl/Android.gen.mk                                       |    2 
 src/glsl/ast_function.cpp                                     |    3 
 src/glsl/linker.cpp                                           |    8 
 src/glsl/nir/nir_lower_vec_to_movs.c                          |    4 
 src/glx/dri2_glx.c                                            |   11 
 src/glx/dri3_glx.c                                            |    7 
 src/glx/dri_common.c                                          |   28 
 src/glx/drisw_glx.c                                           |    4 
 src/glx/glxextensions.c                                       |    1 
 src/glx/glxextensions.h                                       |    1 
 src/loader/pci_id_driver_map.h                                |    7 
 src/mesa/Android.libmesa_dricore.mk                           |    7 
 src/mesa/Android.libmesa_sse41.mk                             |   44 +
 src/mesa/Android.libmesa_st_mesa.mk                           |    4 
 src/mesa/Android.mk                                           |    1 
 src/mesa/Makefile.sources                                     |    4 
 src/mesa/drivers/common/meta_copy_image.c                     |    2 
 src/mesa/drivers/dri/Android.mk                               |    3 
 src/mesa/drivers/dri/common/Android.mk                        |   22 
 src/mesa/drivers/dri/i915/Android.mk                          |    2 
 src/mesa/drivers/dri/i965/Android.mk                          |    2 
 src/mesa/drivers/dri/i965/brw_blorp.cpp                       |   10 
 src/mesa/drivers/dri/i965/brw_fs.cpp                          |   11 
 src/mesa/drivers/dri/i965/brw_fs_cse.cpp                      |    2 
 src/mesa/drivers/dri/i965/brw_vec4.cpp                        |    1 
 src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp       |   14 
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c              |    5 
 src/mesa/drivers/dri/i965/intel_copy_image.c                  |   20 
 src/mesa/drivers/dri/i965/intel_tex_image.c                   |    2 
 src/mesa/drivers/dri/i965/test_vec4_cmod_propagation.cpp      |   14 
 src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp      |   10 
 src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp     |   10 
 src/mesa/main/errors.c                                        |   20 
 src/mesa/main/fbobject.c                                      |    1 
 src/mesa/main/get.c                                           |    2 
 src/mesa/main/get_hash_params.py                              |    3 
 src/mesa/main/image.c                                         |   22 
 src/mesa/main/objectlabel.c                                   |   13 
 src/mesa/main/readpix.c                                       |    7 
 src/mesa/main/shared.c                                        |    2 
 src/mesa/main/syncobj.c                                       |   89 +-
 src/mesa/main/syncobj.h                                       |   11 
 src/mesa/main/viewport.c                                      |    4 
 src/mesa/state_tracker/st_atom_texture.c                      |   34 -
 src/mesa/state_tracker/st_cb_fbo.c                            |   22 
 src/mesa/state_tracker/st_cb_texture.c                        |    5 
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp                    |    1 
 src/mesa/x86-64/xform4.S                                      |   40 -
 109 files changed, 1138 insertions(+), 367 deletions(-)

New commits:
commit ca2fbf6f8fe5e1853064c81fd3334a8172d65689
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Sun Apr 17 18:43:30 2016 +0100

    docs: add release notes for 11.1.3
    
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/docs/relnotes/11.1.3.html b/docs/relnotes/11.1.3.html
new file mode 100644
index 0000000..903abfb
--- /dev/null
+++ b/docs/relnotes/11.1.3.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <title>Mesa Release Notes</title>
+  <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+  <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 11.1.3 Release Notes / April 17, 2016</h1>
+
+<p>
+Mesa 11.1.3 is a bug fix release which fixes bugs found since the 11.1.2 release.
+</p>
+<p>
+Mesa 11.1.3 implements the OpenGL 4.1 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.1.  OpenGL
+4.1 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+TBD
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=27512";>Bug 27512</a> - Illegal instruction _mesa_x86_64_transform_points4_general</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=91526";>Bug 91526</a> - World of Warcraft (on Wine) has UI corruption with nouveau</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92193";>Bug 92193</a> - [SKL] ES2-CTS.gtf.GL2ExtensionTests.compressed_astc_texture.compressed_astc_texture fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93358";>Bug 93358</a> - [HSW] Unreal Elemental demo - assertion error in copy_image_with_blitter</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93418";>Bug 93418</a> - Geometry Shaders output wrong vertices on Sandy Bridge</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93524";>Bug 93524</a> - Clover doesn't build</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93667";>Bug 93667</a> - Crash in eglCreateImageKHR with huge texture size</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93813";>Bug 93813</a> - Incorrect viewport range when GL_CLIP_ORIGIN is GL_UPPER_LEFT</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94050";>Bug 94050</a> - test_vec4_register_coalesce regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94073";>Bug 94073</a> - Miscompilation of abs_vec3_vert_xvary_ref.vert in WebGL conformance</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94088";>Bug 94088</a> - [llvmpipe] SIGFPE pthread_barrier_destroy.c:40</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94193";>Bug 94193</a> - [llvmpipe] Line antialiasing looks different when GL_LINE_STIPPLE is enabled with pattern 0xffff</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94195";>Bug 94195</a> - [llvmpipe] Does not build with LLVM 3.7.x on Windows</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94388";>Bug 94388</a> - r600_blit.c:281: r600_decompress_depth_textures: Assertion `tex-&gt;is_depth &amp;&amp; !tex-&gt;is_flushing_texture' failed.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94412";>Bug 94412</a> - Trine 3 misrender</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94481";>Bug 94481</a> - softpipe - access violation in img_filter_2d_nearest</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94595";>Bug 94595</a> - [Mesa AMD&amp;swrast] Texture views attached as framebuffers return their viewed tecture's color encoding and render incorrectly</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94954";>Bug 94954</a> - test_vec4_copy_propagation fails in `make check`</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Anuj Phogat (1):</p>
+<ul>
+  <li>i965: Fix assert conditions for src/dst x/y offsets</li>
+</ul>
+
+<p>Ben Widawsky (2):</p>
+<ul>
+  <li>i965: Make sure we blit a full compressed block</li>
+  <li>i965/skl: Add two missing device IDs</li>
+</ul>
+
+<p>Brian Paul (1):</p>
+<ul>
+  <li>mesa: fix incorrect viewport position when GL_CLIP_ORIGIN = GL_LOWER_LEFT</li>
+</ul>
+
+<p>Chris Forbes (1):</p>
+<ul>
+  <li>i965/blorp: Fix hiz ops on MSAA surfaces</li>
+</ul>
+
+<p>Christian König (1):</p>
+<ul>
+  <li>radeon/uvd: disable MPEG1</li>
+</ul>
+
+<p>Christian Schmidbauer (1):</p>
+<ul>
+  <li>st/nine: specify WINAPI only for i386 and amd64</li>
+</ul>
+
+<p>Daniel Czarnowski (3):</p>
+<ul>
+  <li>egl_dri2: NULL check for xcb_dri2_get_buffers_reply()</li>
+  <li>egl_dri2: set correct error code if swapbuffers fails</li>
+  <li>egl: support EGL_LARGEST_PBUFFER in eglCreatePbufferSurface(...)</li>
+</ul>
+
+<p>Dave Airlie (1):</p>
+<ul>
+  <li>mesa/fbobject: propogate Layered when reusing attachments.</li>
+</ul>
+
+<p>Derek Foreman (1):</p>
+<ul>
+  <li>egl/wayland: Try to use wl_surface.damage_buffer for SwapBuffersWithDamage</li>
+</ul>
+
+<p>Dongwon Kim (1):</p>
+<ul>
+  <li>egl: move Null check to eglGetSyncAttribKHR to prevent Segfault</li>
+</ul>
+
+<p>Emil Velikov (10):</p>
+<ul>
+  <li>docs: add sha256 checksums for 11.1.2</li>
+  <li>get-pick-list.sh: Require explicit "11.1" for nominating stable patches</li>
+  <li>cherry-ignore: do not pick nv50/ir commit</li>
+  <li>automake: add nine to make distcheck</li>
+  <li>install-gallium-links: port changes from install-lib-links</li>
+  <li>automake: add more missing options for make distcheck</li>
+  <li>mesa; add get-extra-pick-list.sh script into bin/</li>
+  <li>egl/x11: check the return value of xcb_dri2_get_buffers_reply()</li>
+  <li>nvc/ir: remove duplicate variable declaration</li>
+  <li>Update version to 11.1.3</li>
+</ul>
+
+<p>Francisco Jerez (4):</p>
+<ul>
+  <li>i965: Reupload push and pull constants when we get new shader image unit state.</li>
+  <li>i965/fs: Add missing analysis invalidation in opt_sampler_eot().</li>
+  <li>i965/fs: Add missing analysis invalidation in fixup_3src_null_dest().</li>
+  <li>i965/vec4: Consider removal of no-op MOVs as progress during register coalesce.</li>
+</ul>
+
+<p>Ilia Mirkin (21):</p>
+<ul>
+  <li>nvc0/ir: fix converting between predicate and gpr</li>
+  <li>nvc0: add some missing PUSH_SPACE's</li>
+  <li>nvc0: avoid negatives in PUSH_SPACE argument</li>
+  <li>glsl: make sure builtins are initialized before getting the shader</li>
+  <li>glsl: return cloned signature, not the builtin one</li>
+  <li>nv50/ir: fix quadop emission in the presence of predication</li>
+  <li>st/mesa: fix up result_src.type when doing i2u/u2i conversions</li>
+  <li>meta/copy_image: use precomputed dst_internal_format to avoid segfault</li>
+  <li>st/mesa: force depth mode to GL_RED for sized depth/stencil formats</li>
+  <li>glx: update to updated version of EXT_create_context_es2_profile</li>
+  <li>nv50,nvc0: bump minimum texture buffer offset alignment</li>
+  <li>nvc0: reset TFB bufctx when we no longer hold a reference to the buffers</li>
+  <li>glsl: avoid stack smashing when there are too many attributes</li>
+  <li>nvc0: fix blit triangle size to fully cover FB's &gt; 8192x8192</li>
+  <li>nv50: reset TFB bufctx when we no longer hold a reference to the buffers</li>
+  <li>nv50/ir: force-enable derivatives on TXD ops</li>
+  <li>st/mesa: only minify depth for 3d targets</li>
+  <li>nv50/ir: fix indirect texturing for non-array textures on nvc0</li>
+  <li>nvc0/ir: fix picking of coordinates from tex instruction for textureGrad</li>
+  <li>nvc0: disable primitive restart and index bias during blits</li>
+  <li>nv50/ir: we can't load local memory directly into an output</li>
+</ul>
+
+<p>Jason Ekstrand (1):</p>
+<ul>
+  <li>nir/lower_vec_to_movs: Better report channels handled by insert_mov</li>
+</ul>
+
+<p>Kenneth Graunke (3):</p>
+<ul>
+  <li>mesa: Make glGet queries initialize ctx-&gt;Debug when necessary.</li>
+  <li>mesa: Allow Get*() of several forgotten IsEnabled() pnames.</li>
+  <li>i965: Only magnify depth for 3D textures, not array textures.</li>
+</ul>
+
+<p>Koop Mast (1):</p>
+<ul>
+  <li>st/clover: Add libelf cflags to the build</li>
+</ul>
+
+<p>Marc-André Lureau (1):</p>
+<ul>
+  <li>virtio_gpu: Add virtio 1.0 PCI ID to driver map</li>
+</ul>
+
+<p>Marek Olšák (3):</p>
+<ul>
+  <li>radeonsi: fix Hyper-Z on Stoney</li>
+  <li>gallium/radeon: don't use temporary buffers for persistent mappings</li>
+  <li>radeonsi: fix Hyper-Z hangs on P2 configs</li>
+</ul>
+
+<p>Matt Turner (3):</p>
+<ul>
+  <li>i965/vec4: don't copy ATTR into 3src instructions with complex swizzles</li>
+  <li>i965/fs: Don't CSE negated multiplies with saturation.</li>
+  <li>i965/vec4: Update vec4 unit tests for commit 01dacc83ff.</li>
+</ul>
+
+<p>Nanley Chery (2):</p>
+<ul>
+  <li>mesa/image: Make _mesa_clip_readpixels() work with renderbuffers</li>
+  <li>mesa/readpix: Clip ReadPixels() area to the ReadBuffer's</li>
+</ul>
+
+<p>Nicolai Hähnle (2):</p>
+<ul>
+  <li>r600g: clear compressed_depthtex/colortex_mask when binding buffer texture</li>
+  <li>st/mesa: use the texture view's format for render-to-texture</li>
+</ul>
+
+<p>Nishanth Peethambaran (2):</p>
+<ul>
+  <li>st/omx: Remove trailing spaces</li>
+  <li>st/omx/dec: Correct the timestamping</li>
+</ul>
+
+<p>Oded Gabbay (8):</p>
+<ul>
+  <li>gallium/radeon: Correctly translate colorswaps for big endian</li>
+  <li>llvmpipe: use vpkswss when dst is signed</li>
+  <li>gallium/radeon: return correct values for BE in r600_translate_colorswap</li>
+  <li>gallium/radeon: remove separate BE path in r600_translate_colorswap</li>
+  <li>gallium/r600: Don't let h/w do endian swap for colorformat</li>
+  <li>gallium/radeon: disable evergreen_do_fast_color_clear for BE</li>
+  <li>r600g: Do colorformat endian swap for PIPE_USAGE_STAGING</li>
+  <li>radeonsi: Do colorformat endian swap for PIPE_USAGE_STAGING</li>
+</ul>
+
+<p>Olivier Pena (1):</p>
+<ul>
+  <li>scons: support for LLVM 3.7.</li>
+</ul>
+
+<p>Patrick Baggett (1):</p>
+<ul>
+  <li>mesa: Use SSE prefetch instructions rather than 3DNow instructions</li>
+</ul>
+
+<p>Rob Herring (10):</p>
+<ul>
+  <li>Android: remove dependence on .SECONDEXPANSION</li>
+  <li>Android: glsl: fix dependence on YACC_HEADER_SUFFIX from build system</li>
+  <li>Android: add -Wno-date-time flag for clang</li>
+  <li>Android: remove headers from LOCAL_SRC_FILES</li>
+  <li>Android: clean-up and fix DRI module path handling</li>
+  <li>freedreno: drop unnecessary -Wno-packed-bitfield-compat</li>
+  <li>gallium/radeon: Add space between string literal and identifier</li>
+  <li>r600: Make enum alu_op_flags unsigned</li>
+  <li>virtio_gpu: Add PCI ID to driver map</li>
+  <li>Android: fix x86 gallium builds</li>
+</ul>
+
+<p>Roland Scheidegger (2):</p>
+<ul>
+  <li>softpipe: fix anisotropic filtering crash</li>
+  <li>draw: fix line stippling</li>
+</ul>
+
+<p>Samuel Pitoiset (1):</p>
+<ul>
+  <li>nvc0: make sure to delete samplers used by compute shaders</li>
+</ul>
+
+<p>Steinar H. Gunderson (1):</p>
+<ul>
+  <li>mesa: Fix locking of GLsync objects.</li>
+</ul>
+
+<p>Tamil velan (1):</p>
+<ul>
+  <li>radeon/uvd: increase max height to 4096 for VI and newer</li>
+</ul>
+
+<p>Thomas Hellstrom (2):</p>
+<ul>
+  <li>winsys/svga: Fix an uninitialized return value</li>
+  <li>winsys/svga: Increase the fence timeout</li>
+</ul>
+
+<p>Vinson Lee (1):</p>
+<ul>
+  <li>llvmpipe: Do not use barriers if not using threads.</li>
+</ul>
+
+<p>xavier (1):</p>
+<ul>
+  <li>r600/sb: Do not distribute neg in expr_handler::fold_assoc() when folding multiplications.</li>
+</ul>
+
+
+</div>
+</body>
+</html>

commit 53a886ec319ebbc29c7fcc3219588316e0108c1e
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Sun Apr 17 18:38:20 2016 +0100

    Update version to 11.1.3
    
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/VERSION b/VERSION
index e9ac13b..427d8b7 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-11.1.2
+11.1.3

commit 3eb4fd88916d01f236e5d40c08086ad2fa363bb8
Author: Matt Turner <mattst88@gmail.com>
Date:   Mon Feb 8 15:32:12 2016 -0800

    i965/vec4: Update vec4 unit tests for commit 01dacc83ff.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94050
    (cherry picked from commit c300559fbfa6127320b78c130061fdb6a454658d)
    Fixes: 9f2e22bf343 "i965/vec4: don't copy ATTR into 3src instructions
    with complex swizzles"
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94954
    Nominated-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/src/mesa/drivers/dri/i965/test_vec4_cmod_propagation.cpp b/src/mesa/drivers/dri/i965/test_vec4_cmod_propagation.cpp
index e5e566c..8d4a447 100644
--- a/src/mesa/drivers/dri/i965/test_vec4_cmod_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/test_vec4_cmod_propagation.cpp
@@ -40,6 +40,7 @@ public:
    struct gl_context *ctx;
    struct gl_shader_program *shader_prog;
    struct brw_vertex_program *vp;
+   struct brw_vue_prog_data *prog_data;
    vec4_visitor *v;
 };
 
@@ -47,9 +48,13 @@ class cmod_propagation_vec4_visitor : public vec4_visitor
 {
 public:
    cmod_propagation_vec4_visitor(struct brw_compiler *compiler,
-                                 nir_shader *shader)
-      : vec4_visitor(compiler, NULL, NULL, NULL, shader, NULL,
-                     false, -1) {}
+                                 nir_shader *shader,
+                                 struct brw_vue_prog_data *prog_data)
+      : vec4_visitor(compiler, NULL, NULL, prog_data, shader, NULL,
+                     false, -1)
+      {
+         prog_data->dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
+      }
 
 protected:
    /* Dummy implementation for pure virtual methods */
@@ -96,13 +101,14 @@ void cmod_propagation_test::SetUp()
    ctx = (struct gl_context *)calloc(1, sizeof(*ctx));
    compiler = (struct brw_compiler *)calloc(1, sizeof(*compiler));
    devinfo = (struct brw_device_info *)calloc(1, sizeof(*devinfo));
+   prog_data = (struct brw_vue_prog_data *)calloc(1, sizeof(*prog_data));
    compiler->devinfo = devinfo;
 
    vp = ralloc(NULL, struct brw_vertex_program);
 
    nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL);
 
-   v = new cmod_propagation_vec4_visitor(compiler, shader);
+   v = new cmod_propagation_vec4_visitor(compiler, shader, prog_data);
 
    _mesa_init_gl_program(&vp->program.Base, GL_VERTEX_SHADER, 0);
 
diff --git a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
index ede409b..96e6de5 100644
--- a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
@@ -38,6 +38,7 @@ public:
    struct gl_context *ctx;
    struct gl_shader_program *shader_prog;
    struct brw_vertex_program *vp;
+   struct brw_vue_prog_data *prog_data;
    vec4_visitor *v;
 };
 
@@ -45,10 +46,12 @@ class copy_propagation_vec4_visitor : public vec4_visitor
 {
 public:
    copy_propagation_vec4_visitor(struct brw_compiler *compiler,
-                                 nir_shader *shader)
-      : vec4_visitor(compiler, NULL, NULL, NULL, shader, NULL,
+                                 nir_shader *shader,
+                                 struct brw_vue_prog_data *prog_data)
+      : vec4_visitor(compiler, NULL, NULL, prog_data, shader, NULL,
                      false /* no_spills */, -1)
    {
+      prog_data->dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
    }
 
 protected:
@@ -90,13 +93,14 @@ void copy_propagation_test::SetUp()
    ctx = (struct gl_context *)calloc(1, sizeof(*ctx));
    compiler = (struct brw_compiler *)calloc(1, sizeof(*compiler));
    devinfo = (struct brw_device_info *)calloc(1, sizeof(*devinfo));
+   prog_data = (struct brw_vue_prog_data *)calloc(1, sizeof(*prog_data));
    compiler->devinfo = devinfo;
 
    vp = ralloc(NULL, struct brw_vertex_program);
 
    nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL);
 
-   v = new copy_propagation_vec4_visitor(compiler, shader);
+   v = new copy_propagation_vec4_visitor(compiler, shader, prog_data);
 
    _mesa_init_gl_program(&vp->program.Base, GL_VERTEX_SHADER, 0);
 
diff --git a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
index 90a6bc3..c2b1672 100644
--- a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
+++ b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
@@ -40,6 +40,7 @@ public:
    struct gl_context *ctx;
    struct gl_shader_program *shader_prog;
    struct brw_vertex_program *vp;
+   struct brw_vue_prog_data *prog_data;
    vec4_visitor *v;
 };
 
@@ -48,10 +49,12 @@ class register_coalesce_vec4_visitor : public vec4_visitor
 {
 public:
    register_coalesce_vec4_visitor(struct brw_compiler *compiler,
-                                  nir_shader *shader)
-      : vec4_visitor(compiler, NULL, NULL, NULL, shader, NULL,
+                                  nir_shader *shader,
+                                  struct brw_vue_prog_data *prog_data)
+      : vec4_visitor(compiler, NULL, NULL, prog_data, shader, NULL,
                      false /* no_spills */, -1)
    {
+      prog_data->dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
    }
 
 protected:
@@ -93,13 +96,14 @@ void register_coalesce_test::SetUp()
    ctx = (struct gl_context *)calloc(1, sizeof(*ctx));
    compiler = (struct brw_compiler *)calloc(1, sizeof(*compiler));
    devinfo = (struct brw_device_info *)calloc(1, sizeof(*devinfo));
+   prog_data = (struct brw_vue_prog_data *)calloc(1, sizeof(*prog_data));
    compiler->devinfo = devinfo;
 
    vp = ralloc(NULL, struct brw_vertex_program);
 
    nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL);
 
-   v = new register_coalesce_vec4_visitor(compiler, shader);
+   v = new register_coalesce_vec4_visitor(compiler, shader, prog_data);
 
    _mesa_init_gl_program(&vp->program.Base, GL_VERTEX_SHADER, 0);
 

commit fd1e4331ee40627e5a8cad67b930bde4732ef93f
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Fri Apr 15 10:04:57 2016 +0100

    nvc/ir: remove duplicate variable declaration
    
    Missed out with earlier commit while resolving conflicts.
    
    Fixes: a785cccc706 "nvc0/ir: fix picking of coordinates from tex
    instruction for textureGrad"
    Reported-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
index c015ee7..087e300 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
@@ -850,7 +850,6 @@ NVC0LoweringPass::handleManualTXD(TexInstruction *i)
    Value *zero = bld.loadImm(bld.getSSA(), 0);
    int l, c;
    const int dim = i->tex.target.getDim();
-   const int array = i->tex.target.isArray();
 
    // This function is invoked after handleTEX lowering, so we have to expect
    // the arguments in the order that the hw wants them. For Fermi, array and

commit 48d14b5290d784ea965e45edb94af2dabd9a924d
Author: Olivier Pena <opena@isagri.fr>
Date:   Mon Dec 7 17:13:18 2015 +0100

    scons: support for LLVM 3.7.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
    (cherry picked from commit a5256012ef8ea31bc8025fc72193a9772372c9a1)
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94195

diff --git a/scons/llvm.py b/scons/llvm.py
index c59b8cb..1fc8a3f 100644
--- a/scons/llvm.py
+++ b/scons/llvm.py
@@ -106,7 +106,19 @@ def generate(env):
         ])
         env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')])
         # LIBS should match the output of `llvm-config --libs engine mcjit bitwriter x86asmprinter`
-        if llvm_version >= distutils.version.LooseVersion('3.6'):
+        if llvm_version >= distutils.version.LooseVersion('3.7'):
+            env.Prepend(LIBS = [
+                'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
+                'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
+                'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData',
+                'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMTransformUtils', 'LLVMipa',
+                'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler',
+                'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils',
+                'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine',
+                'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
+                'LLVMBitReader', 'LLVMMC', 'LLVMCore', 'LLVMSupport'
+            ])
+        elif llvm_version >= distutils.version.LooseVersion('3.6'):
             env.Prepend(LIBS = [
                 'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
                 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',

commit 55375c14cec624b4ee30edfdb94c22f4eb53f441
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Sat Apr 2 17:46:58 2016 -0400

    nv50/ir: we can't load local memory directly into an output
    
    This fixes piglit tests like
    
    tests/spec/glsl-1.10/execution/variable-indexing/vs-output-array-float-index-wr.shader_test
    
    and related ones.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 3610b1466d573983d80e3019e8e01ebb97d67d9c)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
index 71b7277..95777b9 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
@@ -354,7 +354,8 @@ NV50LegalizeSSA::propagateWriteToOutput(Instruction *st)
       return;
 
    for (int s = 0; di->srcExists(s); ++s)
-      if (di->src(s).getFile() == FILE_IMMEDIATE)
+      if (di->src(s).getFile() == FILE_IMMEDIATE ||
+          di->src(s).getFile() == FILE_MEMORY_LOCAL)
          return;
 
    if (prog->getType() == Program::TYPE_GEOMETRY) {

commit 760f8ead09452159359595551959d04545b7653e
Author: Christian Schmidbauer <ch.schmidbauer@gmail.com>
Date:   Sun Mar 13 22:50:31 2016 +0100

    st/nine: specify WINAPI only for i386 and amd64
    
    Currently mesa fails building with the x32 abi as ms_abi is not defined
    in such a case.
    
    The patch uses ms_abi only for amd64 targets and stdcall only for i386
    targets to be sure that those are defined.
    
    This patch additionally checks for __GNUC__ to guarantee that
    __attribute__ is available.
    
    CC: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Christian Schmidbauer <ch.schmidbauer@gmail.com>
    Acked-by: Axel Davy <axel.davy@ens.fr>
    (cherry picked from commit 2a529a8ac810b3b40e7a9a071d9544b168928b94)

diff --git a/include/D3D9/d3d9types.h b/include/D3D9/d3d9types.h
index 52fbc99..dce5533 100644
--- a/include/D3D9/d3d9types.h
+++ b/include/D3D9/d3d9types.h
@@ -178,11 +178,17 @@ typedef struct _RGNDATA {
 #undef WINAPI
 #endif /* WINAPI*/
 
-#if defined(__x86_64__) || defined(_M_X64)
-#define WINAPI __attribute__((ms_abi))
-#else /* x86_64 */
-#define WINAPI __attribute__((__stdcall__))
-#endif /* x86_64 */
+#ifdef __GNUC__
+  #if (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64)
+    #define WINAPI __attribute__((ms_abi))
+  #elif defined(__i386) || defined(_M_IX86)
+    #define WINAPI __attribute__((__stdcall__))
+  #else /* neither amd64 nor i386 */
+    #define WINAPI
+  #endif
+#else /* __GNUC__ */
+  #define WINAPI
+#endif
 
 /* Implementation caps */
 #define D3DPRESENT_BACK_BUFFERS_MAX    3

commit c91c7de52d5d42d8dc3615d23c85efdfb8669db1
Author: Rob Herring <robh@kernel.org>
Date:   Tue Feb 2 14:45:07 2016 -0600

    Android: fix x86 gallium builds
    
    Builds with gallium enabled fail on x86 with linker error:
    
    external/mesa3d/src/mesa/vbo/vbo_exec_array.c:127: error: undefined reference to '_mesa_uint_array_min_max'
    
    The problem is sse_minmax.c is not included in the libmesa_st_mesa
    library. Since the SSE4.1 files are needed for both libmesa_st_mesa
    and libmesa_dricore, move SSE4.1 files into a separate static library
    that can be used by both.
    
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
    (cherry picked from commit 2d9e0f24e1a13648a9bceb03dbfb438e03c81fd7)

diff --git a/src/mesa/Android.libmesa_dricore.mk b/src/mesa/Android.libmesa_dricore.mk
index cd31e14..22ae63c 100644
--- a/src/mesa/Android.libmesa_dricore.mk
+++ b/src/mesa/Android.libmesa_dricore.mk
@@ -48,9 +48,8 @@ endif # x86
 endif # MESA_ENABLE_ASM
 
 ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
-LOCAL_SRC_FILES += \
-	main/streaming-load-memcpy.c \
-	main/sse_minmax.c
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+	libmesa_sse41
 LOCAL_CFLAGS := \
 	-msse4.1 \
        -DUSE_SSE41
@@ -64,7 +63,7 @@ LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/gallium/include \
 	$(MESA_TOP)/src/gallium/auxiliary
 
-LOCAL_WHOLE_STATIC_LIBRARIES := \
+LOCAL_WHOLE_STATIC_LIBRARIES += \
 	libmesa_program
 
 include $(LOCAL_PATH)/Android.gen.mk
diff --git a/src/mesa/Android.libmesa_sse41.mk b/src/mesa/Android.libmesa_sse41.mk
new file mode 100644
index 0000000..8562da6
--- /dev/null
+++ b/src/mesa/Android.libmesa_sse41.mk
@@ -0,0 +1,44 @@
+# Copyright 2012 Intel Corporation
+# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
+# Copyright (C) 2010-2011 LunarG Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
+
+LOCAL_PATH := $(call my-dir)
+
+include $(LOCAL_PATH)/Makefile.sources
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libmesa_sse41
+
+LOCAL_SRC_FILES += \
+	$(X86_SSE41_FILES)
+
+LOCAL_C_INCLUDES := \
+	$(MESA_TOP)/src/mapi \
+	$(MESA_TOP)/src/gallium/include \
+	$(MESA_TOP)/src/gallium/auxiliary
+
+include $(MESA_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
+
+endif
diff --git a/src/mesa/Android.libmesa_st_mesa.mk b/src/mesa/Android.libmesa_st_mesa.mk
index 427a35f..4ada78d 100644
--- a/src/mesa/Android.libmesa_st_mesa.mk
+++ b/src/mesa/Android.libmesa_st_mesa.mk
@@ -47,6 +47,8 @@ endif # x86
 endif # MESA_ENABLE_ASM
 
 ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+	libmesa_sse41
 LOCAL_CFLAGS := \
        -DUSE_SSE41
 endif
@@ -59,7 +61,7 @@ LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/gallium/auxiliary \
 	$(MESA_TOP)/src/gallium/include
 
-LOCAL_WHOLE_STATIC_LIBRARIES := \
+LOCAL_WHOLE_STATIC_LIBRARIES += \
 	libmesa_program
 
 include $(LOCAL_PATH)/Android.gen.mk
diff --git a/src/mesa/Android.mk b/src/mesa/Android.mk
index 20f7819..9a1aef8 100644
--- a/src/mesa/Android.mk
+++ b/src/mesa/Android.mk
@@ -24,5 +24,6 @@ include $(LOCAL_PATH)/Android.mesa_gen_matypes.mk
 include $(LOCAL_PATH)/Android.libmesa_glsl_utils.mk
 include $(LOCAL_PATH)/Android.libmesa_dricore.mk
 include $(LOCAL_PATH)/Android.libmesa_st_mesa.mk
+include $(LOCAL_PATH)/Android.libmesa_sse41.mk
 
 include $(LOCAL_PATH)/program/Android.mk
diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources
index 778b92d..2969315 100644
--- a/src/mesa/Makefile.sources
+++ b/src/mesa/Makefile.sources
@@ -578,6 +578,10 @@ X86_64_FILES =		\
 	x86-64/x86-64.h	\
 	x86-64/xform4.S
 
+X86_SSE41_FILES = \
+	main/streaming-load-memcpy.c \
+	main/sse_minmax.c
+
 SPARC_FILES =			\
 	sparc/sparc.h		\
 	sparc/sparc_clip.S	\

commit 75afb4ca6e053983d3537a4fff01ddb4bceb8871
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Sat Mar 26 22:32:43 2016 -0400

    nvc0: disable primitive restart and index bias during blits
    
    Back in the dawn of time, we used to do immediate uploads for the vertex
    data, and all was well. However Maxwell dropped support for immediate
    vertex data, so we started feeding in a VBO (in all cases). But we
    forgot to disable some things that apply in such cases, specifically
    primitive restart and index bias. The latter was causing WoW and other
    Blizzard games trouble as they use a pattern where they draw with a base
    vertex (aka index bias), followed by texture uploads (aka blits,
    internally).
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91526
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Tested-by: Karol Herbst <nouveau@karolherbst.de>
    (cherry picked from commit 41100b6b44e747b9003937f123fce571fd3dec46)

diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
index 8f154b8..1613d47 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
@@ -1294,6 +1294,17 @@ nvc0_blit_3d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
    }
    nvc0->state.num_vtxelts = 2;
 
+   if (nvc0->state.prim_restart) {
+      IMMED_NVC0(push, NVC0_3D(PRIM_RESTART_ENABLE), 0);
+      nvc0->state.prim_restart = 0;
+   }
+
+   if (nvc0->state.index_bias) {
+      IMMED_NVC0(push, NVC0_3D(VB_ELEMENT_BASE), 0);
+      IMMED_NVC0(push, NVC0_3D(VERTEX_ID_BASE), 0);
+      nvc0->state.index_bias = 0;
+   }
+
    for (i = 0; i < info->dst.box.depth; ++i, z += dz) {
       if (info->dst.box.z + i) {
          BEGIN_NVC0(push, NVC0_3D(LAYER), 1);

commit a785cccc706feeaba16e3df0b41bc4548c9be2b4
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Sun Mar 20 17:26:13 2016 -0400

    nvc0/ir: fix picking of coordinates from tex instruction for textureGrad
    
    On Fermi, there's an argument in front of the coords that combines array
    and indirect handle, while on Kepler the array and the indirect handle
    are separate (and in front of the coords). We were previously only
    accounting for the array bit of it, if there were an indirect access it
    wouldn't be counted in the formula.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit f667d15561820ee9dd8e836d43cce3ee52a4780e)
    [Emil Velikov: resolve trivial conflicts]
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
    
    Conflicts:
        src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
index da70875..c015ee7 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
@@ -852,6 +852,17 @@ NVC0LoweringPass::handleManualTXD(TexInstruction *i)
    const int dim = i->tex.target.getDim();
    const int array = i->tex.target.isArray();
 
+   // This function is invoked after handleTEX lowering, so we have to expect
+   // the arguments in the order that the hw wants them. For Fermi, array and
+   // indirect are both in the leading arg, while for Kepler, array and
+   // indirect are separate (and both precede the coordinates). Maxwell is
+   // handled in a separate function.
+   unsigned array;
+   if (targ->getChipset() < NVISA_GK104_CHIPSET)
+      array = i->tex.target.isArray() || i->tex.rIndirectSrc >= 0;
+   else
+      array = i->tex.target.isArray() + (i->tex.rIndirectSrc >= 0);
+
    i->op = OP_TEX; // no need to clone dPdx/dPdy later
 
    for (c = 0; c < dim; ++c)

commit e8cb96f83d761d7ec59d9d1cd8a75c637e0ac07d
Author: Anuj Phogat <anuj.phogat@gmail.com>
Date:   Fri Mar 11 15:24:36 2016 -0800

    i965: Fix assert conditions for src/dst x/y offsets
    
    Cc: mesa-stable@lists.freedesktop.org
    Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    (cherry picked from commit 4ba47f7b2adf71ed100cd390a1a9fbd4434e896a)

diff --git a/src/mesa/drivers/dri/i965/intel_copy_image.c b/src/mesa/drivers/dri/i965/intel_copy_image.c
index dbbac1c..853b6dd 100644
--- a/src/mesa/drivers/dri/i965/intel_copy_image.c
+++ b/src/mesa/drivers/dri/i965/intel_copy_image.c
@@ -140,9 +140,9 @@ copy_image_with_memcpy(struct brw_context *brw,
    _mesa_get_format_block_size(src_mt->format, &src_bw, &src_bh);
 
    assert(src_width % src_bw == 0);
-   assert(src_height % src_bw == 0);
+   assert(src_height % src_bh == 0);


Reply to: