<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Oct 28, 2017 at 11:36 AM, Jason Ekstrand <span dir="ltr"><<a href="mailto:jason@jlekstrand.net" target="_blank">jason@jlekstrand.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This series adds support for cross-stage optimizations in anv.  There are a<br>
few patches from Jordan's shader cache series in here that I wanted because<br>
they made my life easier.  There are also three patches CCd to stable to<br>
fix a but in the i965 cross-stage NIR linking which, as as side-effect,<br>
expose a nice brw_nir_link_shaders helper that we can use in anv.  The bulk<br>
of the series, however, is the annoying refactoring of anv_pipeline.c to<br>
let us work with and cache the shaders an entire pipeline at a time instead<br>
of having everything be per-stage.  The patch to actually add the NIR link<br>
optimizations to ANV is almost trivial.<br>
<br>
On my thermally throttled (and therefore a bit inconsistent) laptop, this<br>
seems to help the Aztec Ruins benchmark by 2%.<br></blockquote><div><br></div><div>Or not... I'm having trouble reproducing it now.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Carl Worth (1):<br>
  intel/compiler: add new field for storing program size<br>
<br>
Jason Ekstrand (17):<br>
  anv/pipeline: Rework the parameters to populate_wm_prog_key<br>
  anv/pipeline: Add populate_tcs/tes_key helpers<br>
  anv/pipline: Add a helper struct for per-stage info<br>
  anv/pipeline: Populate keys up-front<br>
  anv/pipeline: Hash the entire pipeline in one go<br>
  anv/pipeline: Call anv_pipeline_compile_* in a loop<br>
  anv/pipeline: Pull shader compilation out into a helper.<br>
  anv/pipeline: Drop anv_pipeline_add_compiled_<wbr>stage<br>
  anv/pipeline: Recompile all shaders if any are missing from the cache<br>
  anv/pipeline: Compile to NIR in compile_graphics<br>
  anv/pipeline: Add a separate "link" stage<br>
  anv/pipeline: Pull most of the anv_pipeline_compile_* into common code<br>
  intel/nir: Add a helper for getting the NoIndirect mask<br>
  intel/nir: Break the linking code into a helper in brw_nir.c<br>
  intel/nir: Use the correct indirect lowering masks in link_shaders<br>
  nir/lower_indirect: Bail early if modes == 0<br>
  anv/pipeline: Do cross-stage linking optimizations<br>
<br>
Jordan Justen (3):<br>
  intel/compiler: Add union types for prog_data and prog_key stages<br>
  intel/compiler: Add functions to get prog_data and prog_key sizes for<br>
    a stage<br>
  intel/compiler: Remove final_program_size from brw_compile_*<br>
<br>
 src/compiler/nir/nir_lower_<wbr>indirect_derefs.c |   3 +<br>
 src/intel/blorp/blorp.c                      |  10 +-<br>
 src/intel/blorp/blorp_blit.c                 |   5 +-<br>
 src/intel/blorp/blorp_clear.c                |  15 +-<br>
 src/intel/blorp/blorp_priv.h                 |   6 +-<br>
 src/intel/compiler/brw_<wbr>compiler.c            |  36 +<br>
 src/intel/compiler/brw_<wbr>compiler.h            |  34 +-<br>
 src/intel/compiler/brw_fs.cpp                |   6 +-<br>
 src/intel/compiler/brw_nir.c                 |  63 +-<br>
 src/intel/compiler/brw_nir.h                 |   4 +<br>
 src/intel/compiler/brw_shader.<wbr>cpp            |  12 +-<br>
 src/intel/compiler/brw_vec4.<wbr>cpp              |   5 +-<br>
 src/intel/compiler/brw_vec4_<wbr>gs_visitor.cpp   |   8 +-<br>
 src/intel/compiler/brw_vec4_<wbr>tcs.cpp          |  12 +-<br>
 src/intel/vulkan/anv_pipeline.<wbr>c              | 971 ++++++++++++++-------------<br>
 src/intel/vulkan/anv_private.h               |   2 +-<br>
 src/intel/vulkan/genX_<wbr>pipeline.c             |   2 -<br>
 src/mesa/drivers/dri/i965/brw_<wbr>cs.c           |   5 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>gs.c           |   5 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>link.cpp       |  38 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>tcs.c          |   5 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>tes.c          |   5 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>vs.c           |  11 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>wm.c           |   5 +-<br>
 24 files changed, 668 insertions(+), 600 deletions(-)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.5.0.400.gff86faf<br>
<br>
</font></span></blockquote></div><br></div></div>