anv/image: Allow HiZ on input attachment-capable depth/stencil images

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>
This commit is contained in:
Nanley Chery 2017-01-31 12:23:18 -08:00
parent 76b8cc2a1c
commit d7d64f1091
1 changed files with 0 additions and 14 deletions

View 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) {