Can't access Radeon GPU as DirectX Tier 1 with FFmpeg

Brendan Allan 0 Reputation points
2025-03-22T09:29:46.37+00:00

I've got a Standard NV4as v4 virtual machine with AMD drivers installed. I'm trying to decode video with FFmpeg's C APIs in a Rust program, and am selecting AV_HWDEVICE_TYPE_D3D12VA to decode with DirectX. I'm getting an error saying that the device isn't available in Tier 1, which is required for video decoding. Is there a way to get Tier 1 access to the GPU?

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
9,044 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Amira Bedhiafi 34,101 Reputation points Volunteer Moderator
    2025-03-22T14:30:42.7333333+00:00

    Hello Brendan !

    Thank you for posting on Microsoft Learn.

    You're encountering this issue because DirectX 12 Video Decode Tier 1 support is not available by default on Azure Standard NV4as v4 VMs, even though they come with AMD Radeon Instinct MI25 GPUs. Here’s what’s happening and what you can do about it:

    The MI25 GPU is Compute-optimized, not Video-optimized like NVIDIA’s NV-series cards.

    AMD D3D12 Video Decode support is limited, and Azure VMs may not expose full D3D12 capabilities in virtualized environments.

    AMD driver for Azure might not expose D3D12VA video decoding capabilities (Tier 1+), especially if hardware decode is not a supported use case on that SKU.

    If your use case is decoding/encoding video, Azure NV-series with NVIDIA GPUs (like NVv3 or NCasT4_v3) is a better fit.

    If GPU decode is not mandatory and your workloads are manageable:

    • FFmpeg will fall back to software decoding using libx264 or similar.
    • This works across all VM types and avoids hardware dependency issues.
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.