[Mesa-dev] [PATCH 00/18] anv: Remove the HiZ restriction on input attachments

Nanley Chery nanleychery at gmail.com
Tue Feb 28 01:20:08 UTC 2017


Allow HiZ for input attachment-capable depth/stencil buffers. Do so
without requiring sampling operations on such attachments to go through
the HiZ buffer.

Series sections:
* Patch 1: Fix a bug.
* Patch 2: Add a new layout to aux_usage function.
* Patches 3-6: Refactor.
* Patches 7-10: Don't sample the depth buffer through HiZ.
* Patches 11-18: Allow HiZ on input attachment-capable depth/stencil
                 buffers.

This series increases the average frame rate on a release candidate of a
proprietary Vulkan benchmark by an average of 9.94% over 3 runs on my
SKL GT4.

Nanley Chery (18):
  anv/pass: Avoid accessing attachment array out of bounds
  anv/image: Add anv_layout_to_aux_usage()
  anv/cmd_buffer: Replace layout_to_hiz_usage()
  anv: Update the HiZ sampling helper
  anv/image: Remove extra dependency on HiZ-specific variable
  anv/image: Simplify setup of HiZ sampler surface state
  anv/image: Create an additional surface state for sampling
  anv/descriptor_set: Store aux usage of sampled image descriptors
  anv/cmd_buffer: Conditionally choose the sampled image surface state
  anv/cmd_buffer: Remove extra resolve for certain depth buffers
  anv: Store the user's VkAttachmentReference
  anv/pass: Fix size of anv_render_pass:subpass_attachments
  anv/pass: Store subpass attachment reference list
  anv/cmd_buffer: Enable render pass awareness
  anv/blorp: Encapsulate subpass id querying
  anv/cmd_buffer: Add attachment transitioning functions
  anv/cmd_buffer: Centralize automatic layout transitions
  anv/image: Allow HiZ on input attachment-capable depth/stencil images

 src/intel/vulkan/anv_blorp.c          |  33 +++--
 src/intel/vulkan/anv_cmd_buffer.c     |   4 +-
 src/intel/vulkan/anv_descriptor_set.c |  10 ++
 src/intel/vulkan/anv_image.c          | 222 +++++++++++++++++++++++++++-----
 src/intel/vulkan/anv_pass.c           |  50 ++++----
 src/intel/vulkan/anv_pipeline.c       |   6 +-
 src/intel/vulkan/anv_private.h        |  58 +++++++--
 src/intel/vulkan/gen7_cmd_buffer.c    |   4 +-
 src/intel/vulkan/genX_cmd_buffer.c    | 235 ++++++++++++++++++----------------
 src/intel/vulkan/genX_pipeline.c      |   8 +-
 10 files changed, 427 insertions(+), 203 deletions(-)

-- 
2.11.1



More information about the mesa-dev mailing list