<div dir="ltr"><div>I ran the Vulkan CTS both with and without this patch in the hopes that the massive pile of redundant shaders in the CTS would be helped.  It shaved 6 minutes of a 4.5 hour run.  Quite possibly in the noise.<br></div><div><br></div><div>--Jason<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Oct 12, 2018 at 7:08 PM Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This patch series adds a simple NIR shader cache that sits right after<br>
spirv_to_nir and brw_preprocess_nir and before linking.  This should help<br>
alleviate some of the added overhead of link-time optimization since most<br>
of the NIR-level optimization is now cached prior to linking.<br>
<br>
I have no numbers to back this series up; just intuition.<br>
<br>
Jason Ekstrand (5):<br>
  anv/pipeline: Move wpos and input attachment lowering to lower_nir<br>
  anv/pipeline: Hash shader modules and spec constants separately<br>
  compiler/types: Serialize/deserialize subpass input types correctly<br>
  anv/pipeline_cache: Add support for caching NIR<br>
  anv/pipeline: Cache the pre-lowered NIR<br>
<br>
 src/compiler/glsl_types.cpp           |   4 +-<br>
 src/intel/vulkan/anv_pipeline.c       | 118 ++++++++++++++++++--------<br>
 src/intel/vulkan/anv_pipeline_cache.c | 100 ++++++++++++++++++++++<br>
 src/intel/vulkan/anv_private.h        |  18 ++++<br>
 4 files changed, 204 insertions(+), 36 deletions(-)<br>
<br>
-- <br>
2.19.1<br>
<br>
</blockquote></div>