From ad11e826b768299eea5f8842d374d3173c51dd11 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Tue, 22 Jul 2025 14:58:50 +0200 Subject: [PATCH] radv/video: Don't allow DRM format modifier tiling on GFX < 9 Fixes: 566ea76d8e2 ("radv/video: Support DRM format modifier tiling") Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_video.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/amd/vulkan/radv_video.c b/src/amd/vulkan/radv_video.c index 71ef2c3e179..b0d46d3e242 100644 --- a/src/amd/vulkan/radv_video.c +++ b/src/amd/vulkan/radv_video.c @@ -1111,6 +1111,10 @@ radv_GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice, } } + const bool drm_format_modifier_tiling = + pdev->info.gfx_level >= GFX9 && pVideoFormatInfo->imageUsage & (VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR | + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR); + if (need_12bit) { vk_outarray_append_typed(VkVideoFormatPropertiesKHR, &out, p) { @@ -1128,8 +1132,7 @@ radv_GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice, p->imageUsageFlags = pVideoFormatInfo->imageUsage; } - if (pVideoFormatInfo->imageUsage & - (VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR | VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR)) { + if (drm_format_modifier_tiling) { vk_outarray_append_typed(VkVideoFormatPropertiesKHR, &out, p) { p->format = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16; @@ -1167,8 +1170,7 @@ radv_GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice, p->imageUsageFlags = pVideoFormatInfo->imageUsage; } - if (pVideoFormatInfo->imageUsage & - (VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR | VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR)) { + if (drm_format_modifier_tiling) { vk_outarray_append_typed(VkVideoFormatPropertiesKHR, &out, p) { p->format = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16; @@ -1204,8 +1206,7 @@ radv_GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice, p->imageUsageFlags = pVideoFormatInfo->imageUsage; } - if (pVideoFormatInfo->imageUsage & - (VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR | VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR)) { + if (drm_format_modifier_tiling) { vk_outarray_append_typed(VkVideoFormatPropertiesKHR, &out, p) { p->format = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM;