Mesa (master): radv: allocate thin textures as linear.

Dave Airlie airlied at kemper.freedesktop.org
Thu Apr 13 10:32:21 UTC 2017


Module: Mesa
Branch: master
Commit: 4bcebe10ca322c1237d93a0bb786b91731f90589
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4bcebe10ca322c1237d93a0bb786b91731f90589

Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Apr 13 14:12:28 2017 +1000

radv: allocate thin textures as linear.

This is ported from radeonsi, and avoids the bug in the
addrlib code. This should probably be something addrlib
does for us, but for now this fixes the regression without
changing addrlib and aligns us with radeonsi.

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/amd/vulkan/radv_image.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 0ada7ffa61..3586e4c158 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -41,6 +41,13 @@ 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;
+
 	/* MSAA resources must be 2D tiled. */
 	if (pCreateInfo->samples > 1)
 		return RADEON_SURF_MODE_2D;




More information about the mesa-commit mailing list