diff options
author | Dave Airlie <[email protected]> | 2017-08-21 14:10:21 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2017-08-24 01:14:15 +0100 |
commit | 5d26e0baf223b361c9919db213915a82d2dff5c4 (patch) | |
tree | c664820327be2e5fe4cc3b608f70c724154278da | |
parent | bae7723e132d3177697606c799eabbb7cdde2f38 (diff) |
radv: don't degrade tiling mode for small compressed or depth texture.
This is what radeonsi does, so we should do the same, also vega
doesn't support linear depth textures anyways.
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Cc: "17.2" <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r-- | src/amd/vulkan/radv_image.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 78f52a8f729..684e804cc99 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -44,12 +44,16 @@ radv_choose_tiling(struct radv_device *Device, return RADEON_SURF_MODE_LINEAR_ALIGNED; } - /* Textures with a very small height are recommended to be linear. */ - if (pCreateInfo->imageType == VK_IMAGE_TYPE_1D || - /* Only very thin and long 2D textures should benefit from - * linear_aligned. */ - (pCreateInfo->extent.width > 8 && pCreateInfo->extent.height <= 2)) - return RADEON_SURF_MODE_LINEAR_ALIGNED; + if (!vk_format_is_compressed(pCreateInfo->format) && + !vk_format_is_depth_or_stencil(pCreateInfo->format)) { + /* Textures with a very small height are recommended to be linear. */ + if (pCreateInfo->imageType == VK_IMAGE_TYPE_1D || + /* Only very thin and long 2D textures should benefit from + * linear_aligned. */ + (pCreateInfo->extent.width > 8 && pCreateInfo->extent.height <= 2)) + return RADEON_SURF_MODE_LINEAR_ALIGNED; + + } /* MSAA resources must be 2D tiled. */ if (pCreateInfo->samples > 1) |