From 75c01206dc3d59b2b544729398d0d99c56b75ca9 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Wed, 23 Jul 2025 10:57:52 +0200 Subject: [PATCH] radv: Reject linear modifier for video decode DPB Reviewed-by: Dave Airlie Part-of: --- src/amd/vulkan/radv_formats.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c index f6ac950bccd..bd1c7af078a 100644 --- a/src/amd/vulkan/radv_formats.c +++ b/src/amd/vulkan/radv_formats.c @@ -831,8 +831,14 @@ radv_check_modifier_support(struct radv_physical_device *pdev, const VkPhysicalD return VK_ERROR_FORMAT_NOT_SUPPORTED; const bool video = info->usage & (VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR | VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR); - if (video && !ac_modifier_supports_video(&pdev->info, modifier)) - return VK_ERROR_FORMAT_NOT_SUPPORTED; + if (video) { + if (!ac_modifier_supports_video(&pdev->info, modifier)) + return VK_ERROR_FORMAT_NOT_SUPPORTED; + + /* Decode DPB and output coincide (tier3) requires tiling. */ + if (info->usage & VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR && modifier == DRM_FORMAT_MOD_LINEAR) + return VK_ERROR_FORMAT_NOT_SUPPORTED; + } /* We can expand this as needed and implemented but there is not much demand * for more.