Enabling AV1 video encoding for the Intel Arc A750 GPU on Ubuntu

Enabling AV1 video encoding for the Intel Arc A750 GPU on Ubuntu

Hi everyone,

Yesterday, I installed a new Graphics Processing Unit (GPU) into my main machine. Unfortunately, I had some problems when attempting to encode videos to AV1. However, it is easy to solve when we perform the following steps.

It seems that we must use Intel-provided packages in order to enable the full use of the hardware. Barely using ffmpeg with Ubuntu’s default packages will show a couple of errors which are fixed when we install the intel packages.

Note that I’m using Ubuntu 24.10 development version and my own daily Linux Kernel builds. I tried using the Ubuntu-provided kernels and this is not the problem.

So, in order to enable AV1 encoding, we must do the following steps:

Step 1: Add Intel Graphics repository to Ubuntu:

This is performed with the following command lines. First, we must add the Intel Graphics repository key with:

wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
  sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg

We now add the APT repository with:

echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \
  sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list

At this point, we have added the Intel Graphics APT repository to our Ubuntu installation.

Step 2: Update APT repository and install the packages

First, update your apt repositories with sudo apt update.

Next, purge libmfx-gen1.2 if you have it installed. It conflicts with the Intel-provided version:

sudo apt purge libmfx-gen1.2

Finally, install the Intel packages with the following commands:

sudo apt install -y   intel-opencl-icd intel-level-zero-gpu level-zero   intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2   libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri   libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers   mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo

Install the i386 packages for compatibility with x86 software. First, enable the i386 architecture:

sudo dpkg --add-architecture i386

Now we can install the packages:

sudo apt install  -y   udev mesa-va-drivers:i386 mesa-common-dev:i386 mesa-vulkan-drivers:i386   libd3dadapter9-mesa-dev:i386 libegl1-mesa:i386 libegl1-mesa-dev:i386   libgbm-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev:i386   libgles2-mesa:i386 libgles2-mesa-dev:i386 libosmesa6:i386   libosmesa6-dev:i386 libwayland-egl1-mesa:i386 libxatracker2:i386   libxatracker-dev:i386 mesa-vdpau-drivers:i386 libva-x11-2:i386

Finally, install the development packages. This should be optional, but I installed it in case it was needed:

sudo apt install -y   libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev

Step 3: Enable GuC/HuC Firmware in the i915 module

Type the following command to enable the GuC/HuC firmware for this card:

 echo "options i915 enable_guc=3" | sudo tee /etc/modprobe.d/i915.conf

Then, reboot your machine so it is loaded.

Step 4: Enjoy encoding AV1 videos with ffmpeg

If you haven’t installed ffmpeg, you can use the Ubuntu-provided version. Simply install with sudo apt install ffmpeg.

Now, you can enjoy encoding your videos to AV1 using your GPU.

Use -c:v av1_qsv to encode to AV1 using Intel Quick Sync.

An example command would be ffmpeg -i input_file.mp4 -c:v av1_qsv -c:a libopus -b:v 2M -b:a 96K output.webm

Sparkle Intel Arc A750 Titan OC Edition AV1 Encoding

Until the next time!

You can get this GPU on Amazon using the following link:

Note: Links to Amazon are referral links. This site earns a small percentage from orders placed with those links, helping keep this site operating.