From cb29829f72552cbe4e006f0f80faff8aee3a9adb Mon Sep 17 00:00:00 2001 From: Mel Henning Date: Mon, 6 Apr 2026 18:57:05 -0400 Subject: [PATCH] nvk: Allocate a zcull save region in fewer cases Reviewed-by: Mary Guillemard Part-of: --- src/nouveau/vulkan/nvk_image.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/nouveau/vulkan/nvk_image.c b/src/nouveau/vulkan/nvk_image.c index 7df762d8f7a..e5e4f4040b3 100644 --- a/src/nouveau/vulkan/nvk_image.c +++ b/src/nouveau/vulkan/nvk_image.c @@ -1056,12 +1056,27 @@ nvk_image_init(struct nvk_device *dev, } } + const VkImageUsageFlagBits READ_ONLY_IMAGE_USAGE = + VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT | + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + + /* + * We don't know how to update the zcull data if the image is written + * as anything other than a depth attachment + */ + const VkImageUsageFlagBits ZCULL_COMPATIBLE_IMAGE_USAGE = + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | READ_ONLY_IMAGE_USAGE; + /* Disable zcull save/restore regions until * https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15221 * is fixed. */ if (false && (image->vk.aspects & VK_IMAGE_ASPECT_DEPTH_BIT) && + (image->vk.usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) && + !(image->vk.usage & ~ZCULL_COMPATIBLE_IMAGE_USAGE) && + !(image->vk.create_flags & VK_IMAGE_CREATE_SPARSE_BINDING_BIT) && image->vk.image_type != VK_IMAGE_TYPE_3D && image->vk.tiling == VK_IMAGE_TILING_OPTIMAL && pdev->info.has_zcull_info) {