[Mesa-dev] [PATCH v2 00/24] Rework CCS state tracking

Jason Ekstrand jason at jlekstrand.net
Fri Jan 19 23:47:17 UTC 2018


This is more-or-less a rework of the first 13 patches or so from this
series:  https://patchwork.freedesktop.org/series/34511/

There are a bunch of patches in this series that came from the original but
some are new.  In particular, the final patch has been completely
rewritten.  Instead of trying to keep the old per-LOD tracking mechanism,
we now track clear colors once per image and compression data per-slice.
This should fix some corner cases where we would resolve a portion of a
LOD and turn off the "needs resolve" flag but leave some other portion of
it still unresolved.

One other change is that this series now has a hard requirement on the
blorp CCS ambiguate pass.  With out the ability to track clear state on a
per-slice basis (which doesn't seem that useful in general), we can't use
fast-clears for this anymore.  That said, my confidence in the amgibuate
pass grows with every pass over the code and I think it's ready for prime
time.

Cc: Topi Pohjolainen <topi.pohjolainen at intel.com>
Cc: Nanley Chery <nanley.g.chery at intel.com>


Jason Ekstrand (24):
  intel/isl: Codify AUX operations in an enum
  anv/blorp: Rework image clear/resolve helpers
  anv/blorp: Support ISL_AUX_USAGE_HIZ in surf_for_anv_image
  anv/blorp: Rework HiZ ops to look like MCS and CCS
  anv/image: Update a comment
  anv/image: Add a helper for determining when fast clears are supported
  anv/image: Support color aspects in layout_to_aux_usage
  anv/cmd_buffer: Recurse in transition_color_buffer instead of falling
    through
  anv/cmd_buffer: Generalize transition_color_buffer
  anv/cmd_buffer: Add an anv_genX_call macro
  anv/blorp: Add src/dst_level helper variables in CmdCopyImage
  anv/cmd_buffer: Add a mark_image_written helper
  anv: Only fast clear single-slice images
  intel/blorp: Add a CCS ambiguation pass
  anv/cmd_buffer: Pull the undefined layout condition into the if
  anv/cmd_buffer: Re-arrange the logic around UNDEFINED fast-clears
  anv: Use blorp_ccs_ambiguate instead of fast-clears
  anv/image: Simplify some verbose commennts
  anv/cmd_buffer: Move the mi_alu helper higher up
  anv/cmd_buffer: Rework aux tracking
  anv: Allow fast-clearing the first slice of a multi-slice image
  intel/blorp: Use isl_aux_op instead of blorp_fast_clear_op
  intel/blorp: Use isl_aux_op instead of blorp_hiz_op
  intel/blorp: Use the hardware op for CCS ambiguate on gen10+

 src/intel/blorp/blorp.c                       |   2 +-
 src/intel/blorp/blorp.h                       |  33 +-
 src/intel/blorp/blorp_clear.c                 | 167 +++++++-
 src/intel/blorp/blorp_genX_exec.h             |  60 +--
 src/intel/blorp/blorp_priv.h                  |   4 +-
 src/intel/isl/isl.h                           |  74 ++--
 src/intel/vulkan/anv_blorp.c                  | 334 +++++++++------
 src/intel/vulkan/anv_cmd_buffer.c             |  55 ++-
 src/intel/vulkan/anv_genX.h                   |   8 +
 src/intel/vulkan/anv_image.c                  | 229 ++++++----
 src/intel/vulkan/anv_private.h                | 105 +++--
 src/intel/vulkan/genX_cmd_buffer.c            | 589 ++++++++++++++++++--------
 src/mesa/drivers/dri/i965/brw_blorp.c         |  18 +-
 src/mesa/drivers/dri/i965/brw_blorp.h         |   4 +-
 src/mesa/drivers/dri/i965/brw_clear.c         |   4 +-
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c |  50 +--
 16 files changed, 1168 insertions(+), 568 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list