From 8ed3aa7b1a8d892061058ed8b383e7d23f778ba4 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Sun, 25 Feb 2024 13:09:38 -0600 Subject: [PATCH] nvk/copy: Handle VK_REMAINING_ARRAY_LAYERS Part-of: --- src/nouveau/vulkan/nvk_cmd_copy.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/nouveau/vulkan/nvk_cmd_copy.c b/src/nouveau/vulkan/nvk_cmd_copy.c index 0a8e88caeaa..21b4835c898 100644 --- a/src/nouveau/vulkan/nvk_cmd_copy.c +++ b/src/nouveau/vulkan/nvk_cmd_copy.c @@ -365,8 +365,10 @@ nvk_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer, const VkExtent3D extent_px = vk_image_sanitize_extent(&dst->vk, region->imageExtent); + const uint32_t layer_count = + vk_image_subresource_layer_count(&dst->vk, ®ion->imageSubresource); const struct nil_extent4d extent4d_px = - vk_to_nil_extent(extent_px, region->imageSubresource.layerCount); + vk_to_nil_extent(extent_px, layer_count); const VkImageAspectFlagBits aspects = region->imageSubresource.aspectMask; uint8_t plane = nvk_image_aspects_to_plane(dst, aspects); @@ -470,8 +472,10 @@ nvk_CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer, const VkExtent3D extent_px = vk_image_sanitize_extent(&src->vk, region->imageExtent); + const uint32_t layer_count = + vk_image_subresource_layer_count(&src->vk, ®ion->imageSubresource); const struct nil_extent4d extent4d_px = - vk_to_nil_extent(extent_px, region->imageSubresource.layerCount); + vk_to_nil_extent(extent_px, layer_count); const VkImageAspectFlagBits aspects = region->imageSubresource.aspectMask; uint8_t plane = nvk_image_aspects_to_plane(src, aspects); @@ -579,8 +583,10 @@ nvk_CmdCopyImage2(VkCommandBuffer commandBuffer, */ const VkExtent3D extent_px = vk_image_sanitize_extent(&src->vk, region->extent); + const uint32_t layer_count = + vk_image_subresource_layer_count(&src->vk, ®ion->srcSubresource); const struct nil_extent4d extent4d_px = - vk_to_nil_extent(extent_px, region->srcSubresource.layerCount); + vk_to_nil_extent(extent_px, layer_count); const VkImageAspectFlagBits src_aspects = region->srcSubresource.aspectMask;