From 7db16e7cdd71d7cafaeca644325bda5ca81be072 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 26 Aug 2024 07:14:53 +1000 Subject: [PATCH] radv: turn video decode/encode on for VCN4 with latest fw With the latest fw in the linux-firmware repo, navi3x passes all the CTS tests. Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_video.c | 9 +++++++++ src/amd/vulkan/radv_video_enc.c | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/src/amd/vulkan/radv_video.c b/src/amd/vulkan/radv_video.c index 7f9e39f85b2..34bd9861bde 100644 --- a/src/amd/vulkan/radv_video.c +++ b/src/amd/vulkan/radv_video.c @@ -253,6 +253,15 @@ radv_probe_video_decode(struct radv_physical_device *pdev) const struct radv_instance *instance = radv_physical_device_instance(pdev); pdev->video_decode_enabled = false; + + if (pdev->info.vcn_ip_version >= VCN_4_0_0) { + if (pdev->info.vcn_enc_major_version > 1) + pdev->video_decode_enabled = true; + /* VCN 4 FW 1.22 has all the necessary pieces to pass CTS */ + /* VCN 4 has unified fw so use the enc versions */ + if (pdev->info.vcn_enc_major_version == 1 && pdev->info.vcn_enc_minor_version >= 22) + pdev->video_decode_enabled = true; + } if (instance->perftest_flags & RADV_PERFTEST_VIDEO_DECODE) { pdev->video_decode_enabled = true; } diff --git a/src/amd/vulkan/radv_video_enc.c b/src/amd/vulkan/radv_video_enc.c index e36b4cf4665..c2ae7a1f1d7 100644 --- a/src/amd/vulkan/radv_video_enc.c +++ b/src/amd/vulkan/radv_video_enc.c @@ -118,6 +118,12 @@ radv_probe_video_encode(struct radv_physical_device *pdev) return; if (pdev->info.vcn_enc_minor_version < RENCODE_V4_FW_INTERFACE_MINOR_VERSION) return; + + /* VCN 4 FW 1.22 has all the necessary pieces to pass CTS */ + if (pdev->info.vcn_enc_minor_version >= 22) { + pdev->video_encode_enabled = true; + return; + } } else if (pdev->info.vcn_ip_version >= VCN_3_0_0) { if (pdev->info.vcn_enc_major_version != RENCODE_V3_FW_INTERFACE_MAJOR_VERSION) return;