panfrost: Rewrite u-interleaving code
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 25 Jun 2019 15:09:58 +0000 (08:09 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 1 Jul 2019 14:39:51 +0000 (07:39 -0700)
commitf2801f77750668fc94cb8b6369477615d30516c8
tree99f6ecbfd4d9d053b1fad3a26e7dbd350f0a3c52
parent02893fe73ab30318f02b047bedf4bb08ccacec7d
panfrost: Rewrite u-interleaving code

Rather than using a magic lookup table with no explanations, let's add
liberal comments to the code to explain what this tiling scheme is and
how to encode/decode it efficiently.

It's not so mysterious after all -- just reordering bits with some XORs
thrown in.

v2: Correct copyright identifier. Fix spelling error. Switch space_4 to
a LUT. Fix comment typo. Use LUT instead of space_x tricks. Fallback on
generic rather than split up unaligned writes.

v3: Correct stride order (fixes crash loading). Correct coordinate
system mishap.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Tested-by: Andreas Baierl <ichgeh@imkreisrum.de>
src/panfrost/shared/pan_tiling.c