Fix GL ClearTexture for 3D compressed formats

The rowsPerImage value was set to the texel height, rather than block
height, resulting in invalid offsets being computed and passed to
glCompressedTexSubImage3D.

This should also fix ClearTexture for cube maps.

Bug: 422398034
Change-Id: I8418e0f28e56bf8c51e8b42ffb1b5c27e0d4d8b6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/245535
Auto-Submit: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Fr <beaufort.francois@gmail.com>
Commit-Queue: Fr <beaufort.francois@gmail.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/native/opengl/TextureGL.cpp b/src/dawn/native/opengl/TextureGL.cpp
index b1f618c..4c3e99e 100644
--- a/src/dawn/native/opengl/TextureGL.cpp
+++ b/src/dawn/native/opengl/TextureGL.cpp
@@ -558,7 +558,7 @@
             TexelCopyBufferLayout dataLayout;
             dataLayout.offset = 0;
             dataLayout.bytesPerRow = bytesPerRow;
-            dataLayout.rowsPerImage = largestMipSize.height;
+            dataLayout.rowsPerImage = largestMipSize.height / blockInfo.height;
 
             Extent3D mipSize = GetMipLevelSingleSubresourcePhysicalSize(level, Aspect::Color);