From e47bf7dadff612694cf61eedbabc7b313766053f Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Wed, 1 Apr 2020 18:41:03 +0300 Subject: [PATCH] anv: Do not sample from 3d depth image with HiZ For Gen8-11, there are some restrictions around sampling from HiZ. The Skylake PRM docs for RENDER_SURFACE_STATE::AuxiliarySurfaceMode say: "If this field is set to AUX_HIZ, Number of Multisamples must be MULTISAMPLECOUNT_1, and Surface Type cannot be SURFTYPE_3D." Fixes: dEQP-VK.geometry.layered.3d.*.readback Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2720 Signed-off-by: Danylo Piliaiev Reviewed-by: Arcady Goldmints-Orlov Reviewed-by: Lionel Landwerlin Reviewed-by: Jason Ekstrand Tested-by: Marge Bot Part-of: --- src/intel/vulkan/anv_private.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index d4e237025d0..d7134101c20 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -3684,6 +3684,16 @@ anv_can_sample_with_hiz(const struct gen_device_info * const devinfo, if (!(image->aspects & VK_IMAGE_ASPECT_DEPTH_BIT)) return false; + /* For Gen8-11, there are some restrictions around sampling from HiZ. + * The Skylake PRM docs for RENDER_SURFACE_STATE::AuxiliarySurfaceMode + * say: + * + * "If this field is set to AUX_HIZ, Number of Multisamples must + * be MULTISAMPLECOUNT_1, and Surface Type cannot be SURFTYPE_3D." + */ + if (image->type == VK_IMAGE_TYPE_3D) + return false; + /* 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 -- 2.30.2