tu: Fix buffer compressed pitch calculation with unaligned sizes
authorConnor Abbott <cwabbott0@gmail.com>
Tue, 19 May 2020 11:30:37 +0000 (13:30 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 19 May 2020 19:55:11 +0000 (19:55 +0000)
commit74f1c304e8d0ba53f9b079684a5e06ca08b0c5f4
tree4923890cfe95052ddb50e261befa8ba19052cd32
parentda68c727156babbb25392d8c2efeec410cb69d2e
tu: Fix buffer compressed pitch calculation with unaligned sizes

We can just set the extent and not bufferRowLength/bufferImageHeight,
and the extent may not be a multiple of the block size if it covers the
entire image. In this case we have to first divide to get the
width/height in terms of blocks, and then multiply by the block size to
get the buffer's pitch and layer size. Multiplying and dividing instead
won't get the correct result when the extent covers the entire image and
isn't a multiple of the block size. This also makes the code easier to
follow because we don't calculate a pitch in non-sensical units (bytes
times the block width) as an intermediate step.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5098>
src/freedreno/vulkan/tu_clear_blit.c