In Metal, an undocument limit of copying a texture to a buffer is that you pass a bytesPerRow value but that value can not be more than the maxTextureDimension. In other words, if you're copying from an r16 texture and the maxTextureDimension is 16384, then bytesPerRow must be less than or equal to 32768.
I have not checked if other APIs have a similar limit.
Should WebGPU also have that limit or should implementions work around it (for example by copying a row at a time)