[Mesa-dev] [PATCH 00/14] anv: Rework subpass resolves and clears

Jason Ekstrand jason at jlekstrand.net
Mon Feb 5 22:34:49 UTC 2018


This little series just shuffles code around to make things a bit more
clear.  (At least I think it does!)  The basic idea is to split set_subpass
into begin_subpass and end_subpass and then move all of resolve and clear
code into those two helpers.  This means that we no longer have 3 or 4
different functions that all loop over attachments which we have to call in
just the right order.

The last patch in this series takes advantage of this new structure by
allowing us to avoid the transition from UNDEFINED when LOAD_OP_CLEAR is
specified.  I highly doubt the performance impact of this will be noticable
but it's nice to be able to do.

Jason Ekstrand (14):
  anv/cmd_buffer: Apply subpass flushes before set_subpass
  anv/cmd_buffer: Add begin/end_subpass helpers
  anv/cmd_buffer: Pass a subpass id into begin_subpass
  anv/cmd_buffer: Move the color portion of clear_subpass into
    begin_subpass
  intel/blorp: Add a blorp_hiz_clear_depth_stencil helper
  anv/cmd_buffer: Move the rest of clear_subpass into begin_subpass
  anv/cmd_buffer: Decide whether or not to HiZ clear up-front
  anv/cmd_buffer: Iterate all subpass attachments when clearing
  anv/cmd_buffer: Add a concept of pending load aspects
  anv/pass: Store usage in each subpass attachment
  anv/cmd_buffer: Sync clear values in begin_subpass
  anv/cmd_buffer: Mark depth/stencil surfaces written in begin_subpass
  anv/cmd_buffer: Do subpass image transitions in begin/end_subpass
  anv/cmd_buffer: Avoid unnecessary transitions before fast clears

 src/intel/blorp/blorp.h            |  11 +
 src/intel/blorp/blorp_clear.c      |  50 ++++
 src/intel/vulkan/anv_blorp.c       | 367 ++++++++++--------------
 src/intel/vulkan/anv_pass.c        |  35 ++-
 src/intel/vulkan/anv_private.h     |  42 ++-
 src/intel/vulkan/genX_cmd_buffer.c | 555 ++++++++++++++++++++-----------------
 6 files changed, 563 insertions(+), 497 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list