[Mesa-dev] [PATCH 00/18] anv/pipeline: Do cross-stage linking

Jason Ekstrand jason at jlekstrand.net
Wed Jul 11 21:18:02 UTC 2018

I sent out a series for this almost a year ago and it just sat on the list
rotting away.  You can find the original series here:


This v2 is a rebase of that series.  I believe Tim reviewed most of the
original but the rebase was painful enough that it probably merits a second
look-over.  I still have yet to actually be able to tie this to performance
data on anything.  I know there are some Skyrim shaders that are affected
by it but it runs at the same speed before and after.

Jason Ekstrand (18):
  anv/pipeline: Fix up deref modes if we delete a FS output
  anv: Restrict the nuber of color regions to those actually written
  anv/pipeline: More aggressively optimize away color attachments
  anv/pipeline: Rework the parameters to populate_wm_prog_key
  anv/pipeline: Add populate_tcs/tes_key helpers
  anv/pipline: Add a helper struct for per-stage info
  anv/pipeline: Populate keys up-front
  anv/pipeline: Hash the entire pipeline in one go
  anv/pipeline: Call anv_pipeline_compile_* in a loop
  anv/pipeline: Pull shader compilation out into a helper.
  anv/pipeline: Drop anv_pipeline_add_compiled_stage
  anv/pipeline: Recompile all shaders if any are missing from the cache
  anv/pipeline: Compile to NIR in compile_graphics
  anv/pipeline: Add a separate "link" stage
  anv/pipeline: Pull most of the anv_pipeline_compile_* into common code
  nir/lower_indirect: Bail early if modes == 0
  anv/pipeline: Do cross-stage linking optimizations
  anv/pipeline: Disable FS dispatch for pointless fragment shaders

 src/compiler/nir/nir_lower_indirect_derefs.c |    3 +
 src/intel/compiler/brw_compiler.h            |    1 +
 src/intel/vulkan/anv_pipeline.c              | 1110 +++++++++---------
 src/intel/vulkan/anv_private.h               |    2 +-
 src/intel/vulkan/genX_pipeline.c             |    2 -
 5 files changed, 581 insertions(+), 537 deletions(-)


More information about the mesa-dev mailing list