anv/image: Allow HiZ on input attachment-capable depth/stencil images
authorNanley Chery <nanley.g.chery@intel.com>
Tue, 31 Jan 2017 20:23:18 +0000 (12:23 -0800)
committerNanley Chery <nanley.g.chery@intel.com>
Thu, 2 Mar 2017 21:17:55 +0000 (13:17 -0800)
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.

Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_image.c

index 95ba12c..59f730c 100644 (file)
@@ -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) {