From 195abadd2c0d589f9b29a3061c6b2b72f1450151 Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Wed, 25 Sep 2019 22:47:02 -0400 Subject: [PATCH] turnip: use linear tiling for scanout image Signed-off-by: Jonathan Marek Reviewed-by: Kristian H. Kristensen Acked-by: Eric Anholt --- src/freedreno/vulkan/tu_image.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/freedreno/vulkan/tu_image.c b/src/freedreno/vulkan/tu_image.c index 8bea11b6ff7..694f45802bc 100644 --- a/src/freedreno/vulkan/tu_image.c +++ b/src/freedreno/vulkan/tu_image.c @@ -172,7 +172,10 @@ tu_image_create(VkDevice _device, vk_find_struct_const(pCreateInfo->pNext, EXTERNAL_MEMORY_IMAGE_CREATE_INFO) != NULL; - image->tile_mode = pCreateInfo->tiling == VK_IMAGE_TILING_OPTIMAL ? 3 : 0; + image->tile_mode = TILE6_LINEAR; + if (pCreateInfo->tiling == VK_IMAGE_TILING_OPTIMAL && !create_info->scanout) + image->tile_mode = TILE6_3; + setup_slices(image, pCreateInfo); image->size = image->layer_size * pCreateInfo->arrayLayers; @@ -339,10 +342,14 @@ tu_CreateImage(VkDevice device, pAllocator, pImage); #endif + const struct wsi_image_create_info *wsi_info = + vk_find_struct_const(pCreateInfo->pNext, WSI_IMAGE_CREATE_INFO_MESA); + bool scanout = wsi_info && wsi_info->scanout; + return tu_image_create(device, &(struct tu_image_create_info) { .vk_info = pCreateInfo, - .scanout = false, + .scanout = scanout, }, pAllocator, pImage); } -- 2.30.2