Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> --- src/intel/vulkan/anv_image.c | 17 +++++++++++++---- src/intel/vulkan/genX_cmd_buffer.c | 10 ++++------ 2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index d821629191..f8a21c2982 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -182,6 +182,14 @@ 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) { + /* 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) { @@ -529,14 +537,15 @@ anv_CreateImageView(VkDevice _device, if (surf_usage == ISL_AUX_USAGE_HIZ) surf_usage = ISL_AUX_USAGE_NONE; - /* Input attachment surfaces for color or depth are allocated and filled + /* Input attachment surfaces for color are allocated and filled * out at BeginRenderPass time because they need compression information. - * Stencil image do not support compression so we just use the texture - * surface from the image view. + * Compression is not yet enabled for depth textures and stencil doesn't + * allow compression so we can just use the texture surface state from the + * view. */ if (image->usage & VK_IMAGE_USAGE_SAMPLED_BIT || (image->usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT && - (iview->aspect_mask & VK_IMAGE_ASPECT_STENCIL_BIT))) { + !(iview->aspect_mask & VK_IMAGE_ASPECT_COLOR_BIT))) { iview->sampler_surface_state = alloc_surface_state(device); struct isl_view view = iview->isl; diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index baa932e517..1793c4df26 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -303,11 +303,11 @@ need_input_attachment_state(const struct anv_render_pass_attachment *att) if (!(att->usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)) return false; - /* We only allocate input attachment states for color and depth surfaces. - * Stencil doesn't allow compression so we can just use the texture surface - * state from the view + /* We only allocate input attachment states for color surfaces. Compression + * is not yet enabled for depth textures and stencil doesn't allow + * compression so we can just use the texture surface state from the view. */ - return vk_format_is_color(att->format) || vk_format_has_depth(att->format); + return vk_format_is_color(att->format); } static enum isl_aux_usage @@ -518,8 +518,6 @@ genX(cmd_buffer_setup_attachments)(struct anv_cmd_buffer *cmd_buffer, const struct isl_surf *surf; if (att_aspects == VK_IMAGE_ASPECT_COLOR_BIT) { surf = &iview->image->color_surface.isl; - } else { - surf = &iview->image->depth_surface.isl; } struct isl_view view = iview->isl; -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev