Consider the case where:
 * dstFmt = GL_UNSIGNED_BYTE
 * w = 256
 * bufw = 200
 * gl_extensions.EXT_unpack_subimage = false

A simplified version of that code path:

```c++
                int pixelSize = 4;
                // Need to rearrange the buffer to simulate GL_UNPACK_ROW_LENGTH etc.
                int inRowBytes = bufw * pixelSize;
                int outRowBytes = w * pixelSize;
                const u8 *read = (const u8 *)finalBuf;
                u8 *write = (u8 *)finalBuf;
                for (int y = 0; y < h; y++) {
                        memmove(write, read, outRowBytes);
                        read += inRowBytes;
                        write += outRowBytes;
                }
```

As you can see it is definitely in-place (read == write initially.)

-[Unknown]