Implement 3D texture copies on Vulkan
Bug: dawn:781
Change-Id: I5a1b3cc906b2bcb89c0ba3b202bacd16e012efe8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/50241
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
diff --git a/src/dawn_native/vulkan/UtilsVulkan.cpp b/src/dawn_native/vulkan/UtilsVulkan.cpp
index 6167201..7375377 100644
--- a/src/dawn_native/vulkan/UtilsVulkan.cpp
+++ b/src/dawn_native/vulkan/UtilsVulkan.cpp
@@ -139,8 +139,22 @@
break;
}
+ case wgpu::TextureDimension::e3D: {
+ region.imageOffset.x = textureCopy.origin.x;
+ region.imageOffset.y = textureCopy.origin.y;
+ region.imageOffset.z = textureCopy.origin.z;
+
+ region.imageSubresource.baseArrayLayer = 0;
+ region.imageSubresource.layerCount = 1;
+
+ Extent3D imageExtent = ComputeTextureCopyExtent(textureCopy, copySize);
+ region.imageExtent.width = imageExtent.width;
+ region.imageExtent.height = imageExtent.height;
+ region.imageExtent.depth = imageExtent.depthOrArrayLayers;
+ break;
+ }
+
case wgpu::TextureDimension::e1D:
- case wgpu::TextureDimension::e3D:
UNREACHABLE();
}