[Mesa-dev] [PATCH 18/18] anv/image: Allow HiZ on input attachment-capable depth/stencil images

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


While an input attachment may only take on one of those two layouts,
other depth/stencil attachments that use the same image may have
HiZ-enabled layouts. Improves the average frame rate on a release
candidate of a proprietary Vulkan benchmark by 9.94% over 3 runs on my
SKL GT4.

This causes the following buggy CTS tests to fail:
* dEQP-VK.renderpass.attachment_allocation.input_output.93
* dEQP-VK.renderpass.attachment_allocation.input_output.92

Upstream is currently evaluating a bug fix for the tests.

Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>

---

Thanks to Eero, for pointing out the anv FINISHME that is displayed when
running the benchmark.

 src/intel/vulkan/anv_image.c | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 1487ba0c33..fd61389167 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -190,20 +190,6 @@ make_surface(const struct anv_device *dev,
        */
       if (!(image->usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)) {
          /* It will never be used as an attachment, HiZ is pointless. */
-      } else if (image->usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT) {
-         /* From the 1.0.37 spec:
-          *
-          *    "An attachment used as an input attachment and depth/stencil
-          *    attachment must be in either VK_IMAGE_LAYOUT_GENERAL or
-          *    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL."
-          *
-          * It will never have a layout of
-          * VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, so HiZ is
-          * currently pointless. If transfer operations learn to use the HiZ
-          * buffer, we can enable HiZ for VK_IMAGE_LAYOUT_GENERAL and support
-          * input attachments.
-          */
-         anv_finishme("Implement HiZ for input attachments");
       } else if (!env_var_as_boolean("INTEL_VK_HIZ", dev->info.gen >= 8)) {
          anv_finishme("Implement gen7 HiZ");
       } else if (vk_info->mipLevels > 1) {
-- 
2.11.1



More information about the mesa-dev mailing list