Mesa (master): turnip: support copying both aspects of D32_SFLOAT_S8_UINT
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Apr 12 15:21:06 UTC 2021
Module: Mesa
Branch: master
Commit: 16fd5bd99654d4f148ccce55a0aef0a54bdd5a12
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=16fd5bd99654d4f148ccce55a0aef0a54bdd5a12
Author: Danylo Piliaiev <dpiliaiev at igalia.com>
Date: Fri Apr 9 18:02:26 2021 +0300
turnip: support copying both aspects of D32_SFLOAT_S8_UINT
We cannot copy both aspects at the same time, so copy them one by one.
Signed-off-by: Danylo Piliaiev <dpiliaiev at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10140>
---
src/freedreno/vulkan/tu_clear_blit.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/freedreno/vulkan/tu_clear_blit.c b/src/freedreno/vulkan/tu_clear_blit.c
index 425f723969e..57e812433c0 100644
--- a/src/freedreno/vulkan/tu_clear_blit.c
+++ b/src/freedreno/vulkan/tu_clear_blit.c
@@ -1590,8 +1590,19 @@ tu_CmdCopyImage(VkCommandBuffer commandBuffer,
TU_FROM_HANDLE(tu_image, src_image, srcImage);
TU_FROM_HANDLE(tu_image, dst_image, destImage);
- for (uint32_t i = 0; i < regionCount; ++i)
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ if (src_image->vk_format == VK_FORMAT_D32_SFLOAT_S8_UINT) {
+ VkImageCopy info = pRegions[i];
+ u_foreach_bit(b, pRegions[i].dstSubresource.aspectMask) {
+ info.srcSubresource.aspectMask = BIT(b);
+ info.dstSubresource.aspectMask = BIT(b);
+ tu_copy_image_to_image(cmd, src_image, dst_image, &info);
+ }
+ continue;
+ }
+
tu_copy_image_to_image(cmd, src_image, dst_image, pRegions + i);
+ }
}
static void
More information about the mesa-commit
mailing list