From 89bf7e685e820f96bafcf57a8504f3c7c1406e01 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 8 Aug 2025 08:30:07 +0200 Subject: [PATCH] radv: Fix alignment for linear video decode dst images OPTIMAL is actually linear for VCN4 and older, so this needs to check the surface flags instead. Fixes: 2d06b432920 ("radv: Enable tiling for video images on VCN5") Reviewed-by: Samuel Pitoiset Part-of: (cherry picked from commit 26d98d283b1a566d9761782a0f79170484b93fa1) --- .pick_status.json | 2 +- src/amd/vulkan/radv_image.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index f5e9198342d..2fd5e766d2c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4594,7 +4594,7 @@ "description": "radv: Fix alignment for linear video decode dst images", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "2d06b432920637f6c40bb4f7650afcacfcf23a00", "notes": null diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 586ae8e609a..19238ffaac3 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -1184,8 +1184,8 @@ radv_image_create_layout(struct radv_device *device, struct radv_image_create_in if (!device->vk.enabled_features.videoMaintenance1) assert(profile_list); - const bool is_linear = - image->vk.tiling == VK_IMAGE_TILING_LINEAR || image->planes[0].surface.modifier == DRM_FORMAT_MOD_LINEAR; + const bool is_linear = RADEON_SURF_GET(image->planes[0].surface.flags, MODE) == RADEON_SURF_MODE_LINEAR_ALIGNED || + image->planes[0].surface.modifier == DRM_FORMAT_MOD_LINEAR; /* Only linear decode target requires the custom alignment. */ if (is_linear || !(image->vk.usage & VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR)) {