vc4: Rewrite T image handling based on calling the LT handler.
authorEric Anholt <eric@anholt.net>
Thu, 5 Jan 2017 23:37:14 +0000 (15:37 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 6 Jan 2017 01:19:54 +0000 (17:19 -0800)
commit69da8c32c78cf67a55f32c71932d89b01154d49c
tree74dd4234fa968aac39d79fa2b78aa4bb6d59f32e
parent3a3a0d2d6cf37ff9d6e7f8ec9a6a78b24a353e08
vc4: Rewrite T image handling based on calling the LT handler.

The T images are composed of effectively swizzled-around blocks of LT (4x4
utile) images, so we can reduce the t_utile_address() calls by 16x by
calling into the simpler LT loop.

This also adds support for calling down with non-utile-aligned
coordinates, which will be part of lifting the utile alignment requirement
on our callers and avoiding the RMW on non-utile-aligned stores.

Improves 1024x1024 TexSubImage by 2.55014% +/- 1.18584% (n=46)
Improves 1024x1024 GetTexImage by 2.242% +/- 0.880954% (n=32)
src/gallium/drivers/vc4/vc4_tiling.c