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;