From: Nanley Chery Date: Tue, 30 Apr 2019 21:49:10 +0000 (-0700) Subject: anv: Fix some depth buffer sampling cases on ICL+ X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=629806b55bccd7f3e5b7b753820c4442fdb30bbe;p=mesa.git anv: Fix some depth buffer sampling cases on ICL+ Don't attempt sampling with HiZ if the sampler lacks support for it. On ICL, the HW docs state that sampling with HiZ is not supported and that instances of AUX_HIZ in the RENDER_SURFACE_STATE object will be interpreted as AUX_NONE. Cc: Reviewed-by: Lionel Landwerlin Reviewed-by: Anuj Phogat --- diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 4e247bed7ac..2bc4d4a05b6 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -3187,7 +3187,13 @@ anv_can_sample_with_hiz(const struct gen_device_info * const devinfo, if (!(image->aspects & VK_IMAGE_ASPECT_DEPTH_BIT)) return false; - if (devinfo->gen < 8) + /* Allow this feature on BDW even though it is disabled in the BDW devinfo + * struct. There's documentation which suggests that this feature actually + * reduces performance on BDW, but it has only been observed to help so + * far. Sampling fast-cleared blocks on BDW must also be handled with care + * (see depth_stencil_attachment_compute_aux_usage() for more info). + */ + if (devinfo->gen != 8 && !devinfo->has_sample_with_hiz) return false; return image->samples == 1;