radv: set cb base tile swizzles for MRT speedups (v4)
authorDave Airlie <airlied@redhat.com>
Fri, 7 Jul 2017 05:56:57 +0000 (06:56 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 17 Jul 2017 00:43:41 +0000 (01:43 +0100)
commitf8d5b377c8b1452c71d2766becad881f5541cda1
tree094b155809e241a78284847387fa06c57dd59b15
parentb86f86f55cef4672f23cb50871c8cec03deecbd6
radv: set cb base tile swizzles for MRT speedups (v4)

This patch uses addrlib to workout the tile swizzles according
to the surface index. It seems to produce the same values as
amdgpu-pro for the deferred test.

v2: don't apply swizzle to CMASK. the eg docs don't mention
it, and we clearly don't align cmask for that.
v3: disable surf index for dedicated images, as these will
most likely be shared, and I don't think the metadata has
space for this info in it yet.
v4: update for shareable images, rename combined_swizzle
to tile_swizzle

This gets the deferred demo from 730->950fps on my rx480.
(dcc cmask elim predication patches get it further)

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_surface.c
src/amd/common/ac_surface.h
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_image.c
src/amd/vulkan/radv_private.h