Remove a workaround of buffer size computation

If we are copying a partial of rows, the buffer size doesn't need
to be that large of the entire image which has "rowsPerImage" rows.
There was a bug in texture copy splitter. And this workaround was
introduced at https://dawn-review.googlesource.com/c/dawn/+/30741
in order to workaround that bug. D3D12 validation is actually correct.

Now that we have fixed the bug at
https://dawn-review.googlesource.com/c/dawn/+/52680/. The workaround
is not needed.

Bug: dawn:547, dawn:520

Change-Id: I92292c71dc5479fc2ba863eb9f897516bd1a96a0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53360
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
diff --git a/src/utils/TestUtils.cpp b/src/utils/TestUtils.cpp
index cf700af..69b75ca 100644
--- a/src/utils/TestUtils.cpp
+++ b/src/utils/TestUtils.cpp
@@ -52,19 +52,11 @@
         }
         layout.rowsPerImage = rowsPerImage;
 
-        layout.bytesPerImage = layout.bytesPerRow * rowsPerImage;
+        uint32_t appliedRowsPerImage = rowsPerImage > 0 ? rowsPerImage : layout.mipSize.height;
+        layout.bytesPerImage = layout.bytesPerRow * appliedRowsPerImage;
 
-        // TODO(kainino@chromium.org): Remove this intermediate variable.
-        // It is currently needed because of an issue in the D3D12 copy splitter
-        // (or maybe in D3D12 itself?) which requires there to be enough room in the
-        // buffer for the last image to have a height of `rowsPerImage` instead of
-        // the actual height.
-        wgpu::Extent3D mipSizeWithHeightWorkaround = layout.mipSize;
-        mipSizeWithHeightWorkaround.height =
-            rowsPerImage * utils::GetTextureFormatBlockHeight(format);
-
-        layout.byteLength = RequiredBytesInCopy(layout.bytesPerRow, rowsPerImage,
-                                                mipSizeWithHeightWorkaround, format);
+        layout.byteLength =
+            RequiredBytesInCopy(layout.bytesPerRow, appliedRowsPerImage, layout.mipSize, format);
 
         const uint32_t bytesPerTexel = utils::GetTexelBlockSizeInBytes(format);
         layout.texelBlocksPerRow = layout.bytesPerRow / bytesPerTexel;