VERSION                                                     |    2 
 bin/.cherry-ignore                                          |    6 
 debian/changelog                                            |   13 
 debian/upstream/signing-key.asc                             |   76 ++++
 docs/relnotes/17.0.2.html                                   |    3 
 docs/relnotes/17.0.3.html                                   |  188 ++++++++++++
 include/c11/threads.h                                       |    5 
 include/pci_ids/radeonsi_pci_ids.h                          |    1 
 src/amd/vulkan/radv_cmd_buffer.c                            |    8 
 src/compiler/glsl/linker.cpp                                |    6 
 src/compiler/glsl/lower_jumps.cpp                           |   17 -
 src/compiler/glsl/tests/cache_test.c                        |    2 
 src/compiler/glsl/tests/lower_jumps/create_test_cases.py    |   17 -
 src/gallium/drivers/freedreno/freedreno_draw.c              |    2 
 src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp |    1 
 src/gallium/drivers/radeonsi/si_state_shaders.c             |    2 
 src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp     |    2 
 src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp     |    2 
 src/gallium/drivers/swr/rasterizer/jitter/streamout_jit.cpp |    2 
 src/gallium/state_trackers/clover/core/resource.cpp         |   11 
 src/gallium/state_trackers/clover/core/resource.hpp         |    1 
 src/gallium/state_trackers/nine/nine_csmt_helper.h          |    2 
 src/gallium/state_trackers/nine/resource9.c                 |    4 
 src/gallium/state_trackers/nine/surface9.c                  |   10 
 src/gallium/state_trackers/nine/volume9.c                   |   10 
 src/intel/isl/isl.c                                         |    2 
 src/intel/vulkan/anv_blorp.c                                |   24 -
 src/intel/vulkan/anv_image.c                                |    9 
 src/intel/vulkan/anv_private.h                              |   13 
 src/intel/vulkan/anv_query.c                                |   60 ++-
 src/intel/vulkan/genX_cmd_buffer.c                          |   59 ++-
 src/intel/vulkan/genX_pipeline.c                            |    4 
 src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp           |    2 
 src/mesa/drivers/dri/i965/brw_misc_state.c                  |    3 
 src/mesa/drivers/dri/i965/gen8_surface_state.c              |    5 
 src/mesa/drivers/dri/i965/intel_screen.c                    |   11 
 src/mesa/main/api_validate.c                                |   24 +
 src/mesa/main/api_validate.h                                |    2 
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp                  |    1 
 39 files changed, 509 insertions(+), 103 deletions(-)

New commits:
commit 809c1bc9234f72afc82ec4ac69b2487cf8f4baf0
Author: Timo Aaltonen <tjaal...@debian.org>
Date:   Mon Apr 3 19:20:25 2017 +0300

    upload to zesty

diff --git a/debian/changelog b/debian/changelog
index 7378622..e6ff8a8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mesa (17.0.3-1ubuntu1) zesty; urgency=medium
+
+  * Merge from Debian.
+
+ -- Timo Aaltonen <tjaal...@debian.org>  Mon, 03 Apr 2017 19:03:10 +0300
+
 mesa (17.0.3-1) experimental; urgency=medium
 
   * New upstream release.

commit 4a3a6cb8fabd56a18ab9085d114bd13b3bf0e3a1
Author: Andreas Boll <andreas.boll....@gmail.com>
Date:   Mon Apr 3 11:36:17 2017 +0200

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index b7ba713..0c014d1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-mesa (17.0.3-1) UNRELEASED; urgency=medium
+mesa (17.0.3-1) experimental; urgency=medium
 
   * New upstream release.
   * Update d/upstream/signing-key.asc with key from Andres Gomez.
 
- -- Andreas Boll <andreas.boll....@gmail.com>  Mon, 03 Apr 2017 10:10:35 +0200
+ -- Andreas Boll <andreas.boll....@gmail.com>  Mon, 03 Apr 2017 11:35:58 +0200
 
 mesa (17.0.2-1) experimental; urgency=medium
 

commit cabb4251658368c8104f9c57e8bd7ff0ed576996
Author: Andreas Boll <andreas.boll....@gmail.com>
Date:   Mon Apr 3 10:11:46 2017 +0200

    Update d/upstream/signing-key.asc with key from Andres Gomez.

diff --git a/debian/changelog b/debian/changelog
index a007454..b7ba713 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 mesa (17.0.3-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * Update d/upstream/signing-key.asc with key from Andres Gomez.
 
  -- Andreas Boll <andreas.boll....@gmail.com>  Mon, 03 Apr 2017 10:10:35 +0200
 
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
index 360f6c8..797c071 100644
--- a/debian/upstream/signing-key.asc
+++ b/debian/upstream/signing-key.asc
@@ -616,3 +616,79 @@ 
KLVjCNf/FusqCTgbZU06x1S/75XJwcsFENWkWYPEaxxzQiCs1rVzG8SnrOjcyc5F
 T0rEAQLWU7eq9U6nd4BXMkokiuzlOKWqsDyXibR3wkhI80kAJw==
 =XSpT
 -----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+yc3LzJA+b6/cPamySsetyO6jSkApaLbAOl99
+=FK/k
+-----END PGP PUBLIC KEY BLOCK-----

commit d47e8b02066ec910b8ef14c90bf0958ac3858190
Author: Andreas Boll <andreas.boll....@gmail.com>
Date:   Mon Apr 3 10:10:51 2017 +0200

    Bump changelog

diff --git a/debian/changelog b/debian/changelog
index 3959bee..a007454 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mesa (17.0.3-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Andreas Boll <andreas.boll....@gmail.com>  Mon, 03 Apr 2017 10:10:35 +0200
+
 mesa (17.0.2-1) experimental; urgency=medium
 
   [ Timo Aaltonen ]

commit 7f34ecae7fddd3435346f0475557b34920763422
Author: Andres Gomez <ago...@igalia.com>
Date:   Sat Apr 1 17:29:34 2017 +0300

    docs: add release notes for 17.0.3
    
    Signed-off-by: Andres Gomez <ago...@igalia.com>

diff --git a/docs/relnotes/17.0.3.html b/docs/relnotes/17.0.3.html
new file mode 100644
index 0000000..64efe0b
--- /dev/null
+++ b/docs/relnotes/17.0.3.html
@@ -0,0 +1,188 @@
+<!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 17.0.3 Release Notes / April 1, 2017</h1>
+
+<p>
+Mesa 17.0.3 is a bug fix release which fixes bugs found since the 17.0.2 
release.
+</p>
+<p>
+Mesa 17.0.3 implements the OpenGL 4.5 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.5.  OpenGL
+4.5 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>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96743";>Bug 96743</a> 
- [BYT, HSW, SKL, BXT, KBL] GPU hangs with GfxBench 4.0 CarChase</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99246";>Bug 99246</a> 
- [d3dadapter+radeonsi &amp; bisect] EVE-Online : hang on wormhole sight</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100061";>Bug 
100061</a> - LODQ instruction generated with invalid dst mask</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100182";>Bug 
100182</a> - Flickering in The Talos Principle on Sky Lake GT4.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100201";>Bug 
100201</a> - Windows scons build with MSVC toolchain and LLVM 4.0 fails</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Alex Deucher (1):</p>
+<ul>
+  <li>radeonsi: add new polaris12 pci id</li>
+</ul>
+
+<p>Andres Gomez (5):</p>
+<ul>
+  <li>glsl: on UBO/SSBOs link error reset the number of active blocks to 0</li>
+  <li>cherry-ignore: add the Invalidate L2 for TRANSFER_WRITE barriers fix</li>
+  <li>cherry-ignore: add the Flush after unmap in gbm/dri fix</li>
+  <li>cherry-ignore: corrected typo in the Flush after unmap in gbm/dri 
fix</li>
+  <li>Update version to 17.0.3</li>
+</ul>
+
+<p>Axel Davy (2):</p>
+<ul>
+  <li>st/nine: Resolve deadlock in surface/volume dtors when using csmt</li>
+  <li>st/nine: Use atomics for available_texture_mem</li>
+</ul>
+
+<p>Bas Nieuwenhuizen (1):</p>
+<ul>
+  <li>radv: flush DB cache before and after HTILE decompress.</li>
+</ul>
+
+<p>Dave Airlie (1):</p>
+<ul>
+  <li>radv: fix primitive reset index emission</li>
+</ul>
+
+<p>Emil Velikov (1):</p>
+<ul>
+  <li>docs: add sha256 checksums for 17.0.2</li>
+</ul>
+
+<p>Ilia Mirkin (1):</p>
+<ul>
+  <li>st/mesa: set result writemask based on ir type</li>
+</ul>
+
+<p>Jan Vesely (1):</p>
+<ul>
+  <li>clover: use pipe_resource references</li>
+</ul>
+
+<p>Jason Ekstrand (9):</p>
+<ul>
+  <li>anv/query: Invalidate the correct range</li>
+  <li>anv/GetQueryPoolResults: Actually implement the spec</li>
+  <li>anv/image: Return early when unbinding an image</li>
+  <li>anv/query: Fix the location of timestamp availability</li>
+  <li>anv: Make anv_get_layerCount a macro</li>
+  <li>anv/blorp: Use anv_get_layerCount everywhere</li>
+  <li>anv/cmd_buffer: Apply flush operations prior to executing 
secondaries</li>
+  <li>anv/cmd_buffer: Fix bad indentation</li>
+  <li>anv: Flush caches prior to PIPELINE_SELECT on all gens</li>
+</ul>
+
+<p>José Fonseca (1):</p>
+<ul>
+  <li>c11/threads: Include thr/xtimec.h for xtime definition when building 
with MSVC.</li>
+</ul>
+
+<p>Juan A. Suarez Romero (1):</p>
+<ul>
+  <li>tests/cache_test: allow crossing mount points</li>
+</ul>
+
+<p>Karol Herbst (1):</p>
+<ul>
+  <li>nvc0/ir: treat FMA like MAD for operand propagation</li>
+</ul>
+
+<p>Kenneth Graunke (1):</p>
+<ul>
+  <li>i965: Fall back to GL 4.2/4.3 on Haswell if the kernel isn't new 
enough.</li>
+</ul>
+
+<p>Marek Olšák (1):</p>
+<ul>
+  <li>radeonsi: don't hang on shader compile failure</li>
+</ul>
+
+<p>Matt Turner (1):</p>
+<ul>
+  <li>i965/fs: Don't emit SEL instructions for type-converting MOVs.</li>
+</ul>
+
+<p>Nanley Chery (1):</p>
+<ul>
+  <li>intel: Correct the BDW surface state size</li>
+</ul>
+
+<p>Nicolai Hähnle (1):</p>
+<ul>
+  <li>mesa/main: fix MultiDrawElements[BaseVertex] validation of primcount</li>
+</ul>
+
+<p>Rob Clark (1):</p>
+<ul>
+  <li>freedreno: fix memory leak</li>
+</ul>
+
+<p>Tim Rowley (1):</p>
+<ul>
+  <li>swr: [rasterizer jitter] fix llvm &gt;= 5.0 build break</li>
+</ul>
+
+<p>Timothy Arceri (2):</p>
+<ul>
+  <li>glsl: fix lower jumps for returns when loop is inside an if</li>
+  <li>mesa: update lower_jumps tests after bug fix</li>
+</ul>
+
+<p>Topi Pohjolainen (1):</p>
+<ul>
+  <li>i965/gen8+: Do full stall when switching pipeline</li>
+</ul>
+
+<p>Xu Randy (2):</p>
+<ul>
+  <li>anv/blorp: Fix a crash in CmdClearColorImage</li>
+  <li>anv/genX: Solve the vkCreateGraphicsPipelines crash</li>
+</ul>
+
+</div>
+</body>
+</html>

commit 3a90fc5717b693e0fbe04c6b2e04bba93f494f72
Author: Andres Gomez <ago...@igalia.com>
Date:   Sat Apr 1 15:12:39 2017 +0300

    Update version to 17.0.3
    
    Signed-off-by: Andres Gomez <ago...@igalia.com>

diff --git a/VERSION b/VERSION
index c57cf9a..cc64c91 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-17.0.2
+17.0.3

commit fd3b756abbbfc1f9a25a564aaad0bef110c666f8
Author: Andres Gomez <ago...@igalia.com>
Date:   Thu Mar 30 23:45:49 2017 +0300

    cherry-ignore: corrected typo in the Flush after unmap in gbm/dri fix
    
    The regression was for i915, not i965.
    
    Signed-off-by: Andres Gomez <ago...@igalia.com>

diff --git a/bin/.cherry-ignore b/bin/.cherry-ignore
index aac17de..d97ff39 100644
--- a/bin/.cherry-ignore
+++ b/bin/.cherry-ignore
@@ -3,6 +3,6 @@ d49d275c415d60ae08dc3e52d8db11f19a44010f anv/blorp: Don't 
sanitize the swizzle f
 # The commit addressed an earlier commit 0567ab0407e which did not land in 
branch.
 # A stable specific backported patch will follow later ...
 bc5d587a80b64fb3e0a5ea8067e6317fbca2bbc5 radv: Invalidate L2 for 
TRANSFER_WRITE barriers
-# The commit caused a regression in i965 (and possibly others) since
+# The commit caused a regression in i915 (and possibly others) since
 # it didn't implement v4 of DRI2's flush extension.
 ba8df2286a50117011925e915cd832b4a79f126e gbm/dri: Flush after unmap

commit 3a84f6fd4330a00a8d89c24d569dbb450832602d
Author: Andres Gomez <ago...@igalia.com>
Date:   Thu Mar 30 16:48:24 2017 +0300

    cherry-ignore: add the Flush after unmap in gbm/dri fix
    
    The commit caused a regression in i965 (and possibly others) since it
    didn't implement v4 of DRI2's flush extension.
    
    Signed-off-by: Andres Gomez <ago...@igalia.com>

diff --git a/bin/.cherry-ignore b/bin/.cherry-ignore
index 0bb90e2..aac17de 100644
--- a/bin/.cherry-ignore
+++ b/bin/.cherry-ignore
@@ -3,3 +3,6 @@ d49d275c415d60ae08dc3e52d8db11f19a44010f anv/blorp: Don't 
sanitize the swizzle f
 # The commit addressed an earlier commit 0567ab0407e which did not land in 
branch.
 # A stable specific backported patch will follow later ...
 bc5d587a80b64fb3e0a5ea8067e6317fbca2bbc5 radv: Invalidate L2 for 
TRANSFER_WRITE barriers
+# The commit caused a regression in i965 (and possibly others) since
+# it didn't implement v4 of DRI2's flush extension.
+ba8df2286a50117011925e915cd832b4a79f126e gbm/dri: Flush after unmap

commit 57904e481f4b3baec7ff8bfa2a106349266409b8
Author: Andres Gomez <ago...@igalia.com>
Date:   Wed Mar 29 01:24:24 2017 +0300

    cherry-ignore: add the Invalidate L2 for TRANSFER_WRITE barriers fix
    
    Addressed an earlier commit [0567ab0407e] which did not land in
    branch. This will be backported with a stable specific patch.
    
    Signed-off-by: Andres Gomez <ago...@igalia.com>

diff --git a/bin/.cherry-ignore b/bin/.cherry-ignore
index 7121f14..0bb90e2 100644
--- a/bin/.cherry-ignore
+++ b/bin/.cherry-ignore
@@ -1,2 +1,5 @@
 # The commit addressed an earlier commit ccdd5b3738e which did not land in 
branch.
 d49d275c415d60ae08dc3e52d8db11f19a44010f anv/blorp: Don't sanitize the swizzle 
for blorp_clear
+# The commit addressed an earlier commit 0567ab0407e which did not land in 
branch.
+# A stable specific backported patch will follow later ...
+bc5d587a80b64fb3e0a5ea8067e6317fbca2bbc5 radv: Invalidate L2 for 
TRANSFER_WRITE barriers

commit 3d59fd83ed128d48c15b4e0f2c7a9bcf6d6f6566
Author: Jose Fonseca <jfons...@vmware.com>
Date:   Tue Mar 28 11:25:04 2017 +0100

    c11/threads: Include thr/xtimec.h for xtime definition when building with 
MSVC.
    
    MSVC has been including a xtime definition in thr/xtimec.h ever since
    MSVC 2013 (which is the minimum we require for building Mesa), and
    including it prevents duplicate definitions when it gets included by
    LLVM.
    
    In fact, it looks that MSVC has been including a partial C11 threads
    implementation too for some time, which we should consider migrating to
    once we eliminate the use of _MTX_INITIALIZER_NP in our tree.
    
    Thanks to the anonymous helper from
    https://bugs.freedesktop.org/show_bug.cgi?id=100201#c4 for spotting
    this.
    
    Reviewed-by: Roland Scheidegger <srol...@vmware.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100201
    CC: "17.0" <mesa-sta...@lists.freedesktop.org>
    (cherry picked from commit ecfafdcbf51d8919e219539b57ffbd9cd3f8557a)

diff --git a/include/c11/threads.h b/include/c11/threads.h
index 45823df..573348d 100644
--- a/include/c11/threads.h
+++ b/include/c11/threads.h
@@ -30,6 +30,9 @@
 #define EMULATED_THREADS_H_INCLUDED_
 
 #include <time.h>
+#ifdef _MSC_VER
+#include <thr/xtimec.h>  // for xtime
+#endif
 
 #ifndef TIME_UTC
 #define TIME_UTC 1
@@ -41,11 +44,13 @@
 typedef void (*tss_dtor_t)(void*);
 typedef int (*thrd_start_t)(void*);
 
+#ifndef _MSC_VER
 struct xtime {
     time_t sec;
     long nsec;
 };
 typedef struct xtime xtime;
+#endif
 
 
 /*-------------------- enumeration constants --------------------*/

commit 9caf60b3a2c25d46c78c9cdba36e663b687ffd50
Author: Jason Ekstrand <ja...@jlekstrand.net>
Date:   Wed Mar 15 11:58:52 2017 -0700

    anv: Flush caches prior to PIPELINE_SELECT on all gens
    
    The programming note that says we need to do this still exists in the
    SkyLake PRM and, from looking at the bspec, seems like it may apply to
    all hardware generations SNB+.  Unfortunately, this isn't particularly
    clear cut since there is also language in the bspec that says you can
    skip the flushing and stall to get better throughput.  Experimentation
    with the "Car Chase" benchmark in GL seems to indicate that some form of
    flushing is still needed.  This commit makes us do the full set of
    flushes regardless of hardware generation.  We can always reduce the
    flushing later.
    
    Reported-by: Topi Pohjolainen <topi.pohjolai...@intel.com>
    Reviewed-by: Iago Toral Quiroga <ito...@igalia.com>
    Cc: "17.0 13.0" <mesa-sta...@lists.freedesktop.org>
    (cherry picked from commit 6baae9625d26d282a72481598f9431fcad3211f6)

diff --git a/src/intel/vulkan/genX_cmd_buffer.c 
b/src/intel/vulkan/genX_cmd_buffer.c
index 0a20780..ac38ec8 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -2033,8 +2033,8 @@ flush_pipeline_before_pipeline_select(struct 
anv_cmd_buffer *cmd_buffer,
     */
    if (pipeline == GPGPU)
       anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CC_STATE_POINTERS), t);
+#endif
 
-#elif GEN_GEN <= 7
    /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction]
     * PIPELINE_SELECT [DevBWR+]":
     *
@@ -2060,7 +2060,6 @@ flush_pipeline_before_pipeline_select(struct 
anv_cmd_buffer *cmd_buffer,
       pc.InstructionCacheInvalidateEnable = true;
       pc.PostSyncOperation                = NoWrite;
    }
-#endif
 }
 
 void

commit 1761f9d4b2f5a3ed5092a9fef390d5ae5cc07411
Author: Jason Ekstrand <ja...@jlekstrand.net>
Date:   Wed Mar 15 11:58:51 2017 -0700

    anv/cmd_buffer: Fix bad indentation
    
    A bunch of code was indented in such a way that it looked like it went
    with the if statement above but it definitely didn't.
    
    Reviewed-by: Iago Toral Quiroga <ito...@igalia.com>
    Cc: "17.0 13.0" <mesa-sta...@lists.freedesktop.org>
    (cherry picked from commit 0fe3dcce4c3e8b86a60beefe4c5adc760f2d59f8)

diff --git a/src/intel/vulkan/genX_cmd_buffer.c 
b/src/intel/vulkan/genX_cmd_buffer.c
index db212c4..0a20780 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -2033,32 +2033,33 @@ flush_pipeline_before_pipeline_select(struct 
anv_cmd_buffer *cmd_buffer,
     */
    if (pipeline == GPGPU)
       anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CC_STATE_POINTERS), t);
+
 #elif GEN_GEN <= 7
-      /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction]
-       * PIPELINE_SELECT [DevBWR+]":
-       *
-       *   Project: DEVSNB+
-       *
-       *   Software must ensure all the write caches are flushed through a
-       *   stalling PIPE_CONTROL command followed by another PIPE_CONTROL
-       *   command to invalidate read only caches prior to programming
-       *   MI_PIPELINE_SELECT command to change the Pipeline Select Mode.
-       */
-      anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) {
-         pc.RenderTargetCacheFlushEnable  = true;
-         pc.DepthCacheFlushEnable         = true;
-         pc.DCFlushEnable                 = true;
-         pc.PostSyncOperation             = NoWrite;
-         pc.CommandStreamerStallEnable    = true;
-      }
+   /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction]
+    * PIPELINE_SELECT [DevBWR+]":
+    *
+    *   Project: DEVSNB+
+    *
+    *   Software must ensure all the write caches are flushed through a
+    *   stalling PIPE_CONTROL command followed by another PIPE_CONTROL
+    *   command to invalidate read only caches prior to programming
+    *   MI_PIPELINE_SELECT command to change the Pipeline Select Mode.
+    */
+   anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) {
+      pc.RenderTargetCacheFlushEnable  = true;
+      pc.DepthCacheFlushEnable         = true;
+      pc.DCFlushEnable                 = true;
+      pc.PostSyncOperation             = NoWrite;
+      pc.CommandStreamerStallEnable    = true;
+   }
 
-      anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) {
-         pc.TextureCacheInvalidationEnable   = true;
-         pc.ConstantCacheInvalidationEnable  = true;
-         pc.StateCacheInvalidationEnable     = true;
-         pc.InstructionCacheInvalidateEnable = true;
-         pc.PostSyncOperation                = NoWrite;
-      }
+   anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) {
+      pc.TextureCacheInvalidationEnable   = true;
+      pc.ConstantCacheInvalidationEnable  = true;
+      pc.StateCacheInvalidationEnable     = true;
+      pc.InstructionCacheInvalidateEnable = true;
+      pc.PostSyncOperation                = NoWrite;
+   }
 #endif
 }
 

commit 9973db02a04621598bf504fcc7797522ee5046de
Author: Jason Ekstrand <jason.ekstr...@intel.com>
Date:   Fri Mar 24 16:30:24 2017 -0700

    anv/cmd_buffer: Apply flush operations prior to executing secondaries
    
    This fixes rendering issues in the Vulkan port of skia on some hardware.
    
    Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
    Cc: "13.0 17.0" <mesa-sta...@lists.freedesktop.org>
    (cherry picked from commit 01a65dc43be3a4bf6b8a901586f7222218f4b6b3)
    [Andres Gomez: resolve trivial conflicts]
    Signed-off-by: Andres Gomez <ago...@igalia.com>
    
    Conflicts:
        src/intel/vulkan/genX_cmd_buffer.c

diff --git a/src/intel/vulkan/genX_cmd_buffer.c 
b/src/intel/vulkan/genX_cmd_buffer.c
index 320b050..db212c4 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -643,6 +643,11 @@ genX(CmdExecuteCommands)(
 
    assert(primary->level == VK_COMMAND_BUFFER_LEVEL_PRIMARY);
 
+   /* The secondary command buffer doesn't know which textures etc. have been
+    * flushed prior to their execution.  Apply those flushes now.
+    */
+   genX(cmd_buffer_apply_pipe_flushes)(primary);
+
    for (uint32_t i = 0; i < commandBufferCount; i++) {
       ANV_FROM_HANDLE(anv_cmd_buffer, secondary, pCmdBuffers[i]);
 

commit 0a9e06e5b911f19bca3a826f6d4d7cf038e2f823
Author: Jason Ekstrand <jason.ekstr...@intel.com>
Date:   Fri Mar 24 16:20:35 2017 -0700

    anv/blorp: Use anv_get_layerCount everywhere
    
    Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
    Cc: "13.0 17.0" <mesa-sta...@lists.freedesktop.org>
    (cherry picked from commit 9319ef96fd5c2489754eae1b058e4087d7259341)

diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index dde0d96..42fce6f 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -227,7 +227,8 @@ void anv_CmdCopyImage(
          layer_count = pRegions[r].extent.depth;
       } else {
          dst_base_layer = pRegions[r].dstSubresource.baseArrayLayer;
-         layer_count = pRegions[r].dstSubresource.layerCount;
+         layer_count =
+            anv_get_layerCount(dst_image, &pRegions[r].dstSubresource);
       }
 
       unsigned src_base_layer;
@@ -235,7 +236,8 @@ void anv_CmdCopyImage(
          src_base_layer = pRegions[r].srcOffset.z;
       } else {
          src_base_layer = pRegions[r].srcSubresource.baseArrayLayer;
-         assert(pRegions[r].srcSubresource.layerCount == layer_count);
+         assert(layer_count ==
+                anv_get_layerCount(src_image, &pRegions[r].srcSubresource));
       }
 
       assert(pRegions[r].srcSubresource.aspectMask ==
@@ -307,7 +309,8 @@ copy_buffer_to_image(struct anv_cmd_buffer *cmd_buffer,
          anv_sanitize_image_extent(anv_image->type, pRegions[r].imageExtent);
       if (anv_image->type != VK_IMAGE_TYPE_3D) {
          image.offset.z = pRegions[r].imageSubresource.baseArrayLayer;
-         extent.depth = pRegions[r].imageSubresource.layerCount;
+         extent.depth =
+            anv_get_layerCount(anv_image, &pRegions[r].imageSubresource);
       }
 
       const enum isl_format buffer_format =
@@ -461,7 +464,7 @@ void anv_CmdBlitImage(
          dst_end = pRegions[r].dstOffsets[1].z;
       } else {
          dst_start = dst_res->baseArrayLayer;
-         dst_end = dst_start + dst_res->layerCount;
+         dst_end = dst_start + anv_get_layerCount(dst_image, dst_res);
       }
 
       unsigned src_start, src_end;
@@ -471,7 +474,7 @@ void anv_CmdBlitImage(
          src_end = pRegions[r].srcOffsets[1].z;
       } else {
          src_start = src_res->baseArrayLayer;
-         src_end = src_start + src_res->layerCount;
+         src_end = src_start + anv_get_layerCount(src_image, src_res);
       }
 
       bool flip_z = flip_coords(&src_start, &src_end, &dst_start, &dst_end);
@@ -1379,10 +1382,11 @@ void anv_CmdResolveImage(
    for (uint32_t r = 0; r < regionCount; r++) {
       assert(pRegions[r].srcSubresource.aspectMask ==
              pRegions[r].dstSubresource.aspectMask);
-      assert(pRegions[r].srcSubresource.layerCount ==
-             pRegions[r].dstSubresource.layerCount);
+      assert(anv_get_layerCount(src_image, &pRegions[r].srcSubresource) ==
+             anv_get_layerCount(dst_image, &pRegions[r].dstSubresource));
 
-      const uint32_t layer_count = pRegions[r].dstSubresource.layerCount;
+      const uint32_t layer_count =
+         anv_get_layerCount(dst_image, &pRegions[r].dstSubresource);
 
       for (uint32_t layer = 0; layer < layer_count; layer++) {
          resolve_image(&batch,

commit 6cabd40211413bbf780fa61949da7dde47608792
Author: Jason Ekstrand <jason.ekstr...@intel.com>
Date:   Fri Mar 24 16:20:18 2017 -0700

    anv: Make anv_get_layerCount a macro
    
    Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
    Cc: "13.0 17.0" <mesa-sta...@lists.freedesktop.org>
    (cherry picked from commit 1b8fa8dd794c22aba43b16470e75ecaebf902b11)
    [Andres Gomez: resolve trivial conflicts]
    Signed-off-by: Andres Gomez <ago...@igalia.com>
    
    Conflicts:
        src/intel/vulkan/anv_private.h

diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 52e6ed5..d3e79df 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1627,13 +1627,12 @@ anv_gen8_hiz_op_resolve(struct anv_cmd_buffer 
*cmd_buffer,
                         const struct anv_image *image,
                         enum blorp_hiz_op op);
 
-static inline uint32_t
-anv_get_layerCount(const struct anv_image *image,
-                   const VkImageSubresourceRange *range)
-{
-   return range->layerCount == VK_REMAINING_ARRAY_LAYERS ?
-          image->array_size - range->baseArrayLayer : range->layerCount;
-}
+/* This is defined as a macro so that it works for both
+ * VkImageSubresourceRange and VkImageSubresourceLayers
+ */
+#define anv_get_layerCount(_image, _range) \
+   ((_range)->layerCount == VK_REMAINING_ARRAY_LAYERS ? \
+    (_image)->array_size - (_range)->baseArrayLayer : (_range)->layerCount)
 
 static inline uint32_t
 anv_get_levelCount(const struct anv_image *image,

commit 4b3fddaa1aeba342e2e2551558b6867b13789de5
Author: Timothy Arceri <tarc...@itsqueeze.com>
Date:   Wed Mar 29 20:30:19 2017 +1100

    mesa: update lower_jumps tests after bug fix
    
    This change updates the tests to reflect the IR after
    the following bug fix.
    
    Fixes: c1096b7f1d49 ("glsl: fix lower jumps for returns when loop is
                          inside an if")
    
    Tested-by: Michel Dänzer <michel.daen...@amd.com>
    Bugzilla: https://bugs.freedesktop.org/100441
    (cherry picked from commit e44cba540ee7a07bba643bab4b9e519e90244bd1)

diff --git a/src/compiler/glsl/tests/lower_jumps/create_test_cases.py 
b/src/compiler/glsl/tests/lower_jumps/create_test_cases.py
index 3be1079..ceb64a3 100644
--- a/src/compiler/glsl/tests/lower_jumps/create_test_cases.py
+++ b/src/compiler/glsl/tests/lower_jumps/create_test_cases.py
@@ -236,6 +236,13 @@ def if_execute_flag(statements):
     check_sexp(statements)
     return [['if', ['var_ref', 'execute_flag'], statements, []]]
 
+def if_return_flag(then_statements, else_statements):
+    """Wrap statements in an if test with return_flag as the condition.
+    """
+    check_sexp(then_statements)
+    check_sexp(else_statements)
+    return [['if', ['var_ref', 'return_flag'], then_statements, 
else_statements]]
+
 def if_not_return_flag(statements):
     """Wrap statements in an if test so that they will only execute if
     return_flag is False.
@@ -452,7 +459,10 @@ def test_lower_pulled_out_jump():
                 loop(simple_if('b', simple_if('c', [], continue_()),
                                lowered_return_simple()) +
                      break_()) +
-                if_not_return_flag(assign_x('d', const_float(1))))
+
+                if_return_flag(assign_x('return_flag', const_bool(1)) +
+                               assign_x('execute_flag', const_bool(0)),
+                               assign_x('d', const_float(1))))
             ))
     create_test_case(doc_string, input_sexp, expected_sexp, 
'lower_pulled_out_jump',
                      lower_main_return=True, pull_out_jumps=True)
@@ -583,11 +593,14 @@ def test_lower_return_void_at_end_of_loop():
             assign_x('b', const_float(2))
             ))
     expected_sexp = make_test_case('main', 'void', (
+            declare_execute_flag() +
             declare_return_flag() +
             loop(assign_x('a', const_float(1)) +
                  lowered_return_simple() +
                  break_()) +
-            if_not_return_flag(assign_x('b', const_float(2)))
+            if_return_flag(assign_x('return_flag', const_bool(1)) +
+                           assign_x('execute_flag', const_bool(0)),
+                           assign_x('b', const_float(2)))
             ))
     create_test_case(doc_string, input_sexp, input_sexp, 
'return_void_at_end_of_loop_lower_nothing')
     create_test_case(doc_string, input_sexp, expected_sexp, 
'return_void_at_end_of_loop_lower_return',

commit 2f86b7398a646dc95748cc314edb2ba0e3d25ef7
Author: Juan A. Suarez Romero <jasua...@igalia.com>
Date:   Tue Mar 28 18:00:39 2017 +0200

    tests/cache_test: allow crossing mount points
    
    When using an overlayfs system (like a Docker container), rmrf_local()
    fails because part of the files to be removed are in different mount
    points (layouts). And thus cache-test fails.
    
    Letting crossing mount points is not a big problem, specially because
    this is just for a test, not to be used in real code.
    
    Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>
    (cherry picked from commit caa616ccc4384ea1479865e12b56cf816561a827)

diff --git a/src/compiler/glsl/tests/cache_test.c 
b/src/compiler/glsl/tests/cache_test.c
index 0ef05aa..efe4a9b 100644
--- a/src/compiler/glsl/tests/cache_test.c
+++ b/src/compiler/glsl/tests/cache_test.c
@@ -111,7 +111,7 @@ rmrf_local(const char *path)
    if (path == NULL || *path == '\0' || *path != '.')
       return -1;
 
-   return nftw(path, remove_entry, 64, FTW_DEPTH | FTW_PHYS | FTW_MOUNT);
+   return nftw(path, remove_entry, 64, FTW_DEPTH | FTW_PHYS);
 }
 
 #define CACHE_TEST_TMP "./cache-test-tmp"

commit dc01cb9c5f38d6cdbb583ba70db5e51cc8901236
Author: Andres Gomez <ago...@igalia.com>
Date:   Wed Feb 22 17:03:22 2017 +0200

    glsl: on UBO/SSBOs link error reset the number of active blocks to 0
    
    While it's legal to have an active blocks count > 0 on link failure.
    Unless we actually assign memory for the blocks array we can end up
    segfaulting in calls such as glUniformBlockBinding().
    
    To avoid having to NULL check these api calls we simply reset the
    block count to 0 if the array was not created.
    
    Signed-off-by: Andres Gomez <ago...@igalia.com>
    Cc: Timothy Arceri <tarc...@itsqueeze.com>
    Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com>
    (cherry picked from commit bf15b2b515d5f37fc67fea77dea9d2fbc1dc8bf1)

diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index d187b66..9f1d6b7 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -1176,6 +1176,12 @@ interstage_cross_validate_uniform_blocks(struct 
gl_shader_program *prog,
             for (unsigned k = 0; k <= i; k++) {
                delete[] InterfaceBlockStageIndex[k];
             }
+
+            /* Reset the block count. This will help avoid various segfaults
+             * from api calls that assume the array exists due to the count
+             * being non-zero.
+             */
+            *num_blks = 0;
             return false;
          }
 

commit fb00f22b835f76b88c996e479fc583e86e4d6006
Author: Jason Ekstrand <jason.ekstr...@intel.com>
Date:   Tue Mar 14 17:52:12 2017 -0700

    anv/query: Fix the location of timestamp availability
    
    Reviewed-By: Lionel Landwerlin <lionel.g.landwer...@intel.com>
    Cc: "17.0 13.0" <mesa-...@lists.freedesktop.org>
    (cherry picked from commit 4bbb4b95b8ba02693f5e6990b983ebb66dc6241a)
    [Andres Gomez: use genX_cmd_buffer.c instead of genX_query.c]
    Signed-off-by: Andres Gomez <ago...@igalia.com>
    
    Conflicts:
        src/intel/vulkan/genX_query.c

diff --git a/src/intel/vulkan/genX_cmd_buffer.c 
b/src/intel/vulkan/genX_cmd_buffer.c
index e70ea7e..320b050 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -2577,7 +2577,7 @@ void genX(CmdWriteTimestamp)(
       break;
    }
 
-   emit_query_availability(cmd_buffer, &pool->bo, query + 16);
+   emit_query_availability(cmd_buffer, &pool->bo, offset + 16);
 }
 
 #if GEN_GEN > 7 || GEN_IS_HASWELL

commit 45e133ab3bc0d182e5a2a8ebd4db725499c8ab09
Author: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
Date:   Tue Mar 28 01:48:15 2017 +0200

    radv: flush DB cache before and after HTILE decompress.
    
    It reads @ writes the DB cache, and we haven't flushed dst caches yet,
    so DB cache may be stale. Also the user might be shader read (and probably 
is),
    so also flush after.
    
    Signed-off-by: Bas Nieuwenhuizen <ba...@google.com>
    Reviewed-by: Dave Airlie <airl...@redhat.com>
    CC: <mesa-sta...@lists.freedesktop.org>
    Fixes: f4e499ec791 ("radv: add initial non-conformant radv vulkan driver")
    (cherry picked from commit a8c51b1cd9168b621e27cf5308d0dd8fc08f8a4a)
    [Andres Gomez: resolve trivial conflicts]
    Signed-off-by: Andres Gomez <ago...@igalia.com>
    
    Conflicts:
        src/amd/vulkan/radv_cmd_buffer.c

Reply via email to