Skip to main content

Enable VA-API in Firefox

I have an AMD A10-7300 laptop. I bought my laptop when AMD just released GCN. Unfortunately, in the same year I bought my laptop, GCN 1.2 was released with better graphic cards installed. And... my Kaveri laptop was a relic when bought. Well, at least my upgraded 16GB RAM laptop is still having 16GB of RAM. LOL...

In Ubuntu 22.04, my laptop getting stutters from opening YouTube videos. I don't think it's a matter of the hardware. On previous Ubuntu, my laptop was running fine with FHD videos. So, this probably a source problem. From a source I found out that I need to enable VA-API for my Firefox.
sudo apt install mesa-va-drivers
I haven't installed that package because probably I have already installed it in the past. From my VA Info:
$ vainfo
libva info: VA-API version 1.14.0
libva info: User environment variable requested driver 'radeonsi'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 23.2.1-1ubuntu3.1~22.04.2 for KAVERI (, LLVM 15.0.7, DRM 2.50, 6.5.0-28-generic)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

It's time to enable support for VAAPI. I'm adding this to .bashrc
export LIBVA_DRIVER_NAME=radeonsi
export MOZ_X11_EGL=1
With those lines of code, I can ensure that Firefox will use the correct VA-API driver Now, let me start the Firefox and go to about:config and set these values:
Key Value
media.ffmpeg.vaapi.enabled true
media.rdd-ffvpx.enabled false
media.navigator.mediadatadecoder_vpx_enabled true
And voila! Firefox now renders Marine x Kobo -- iii flawlessly!.

Comments

Popular posts from this blog

STAN vs. UI

Ugh, kasihan banget adek gue. Saking kepinteran dia jadi dapet Akuntansi UI dan STAN. Jadi bingung mau masuk yang mana. Beberapa orang (termasuk orang tua gue), menyarankan masuk STAN. Gue malah memperburuk suasana dengan membela memasuki Akuntansi UI, maklum bela almamater. Duh, gue jadi merasa bersalah bikin dia ragu-ragu. Kira-kira enakan masuk mana, yah? Gue juga gak tahu keuntungan masing-masing. Hasil debat sementara: ~ Untuk jangka panjang masuk UI, untuk jangka pendek STAN. ~~Tapi, dia itu kan cewek, ntar pas menikah kemungkinan besar karir terhambat. Eits, ntar, dulu, sekarang kan jamannya emansipasi, bisa aja cowoknya yang jadi BRT. ~ STAN sarang korupsi, kalo masuk STAN jadi pegawai negeri. Kalo mau kaya harus korupsi. Tapi kalo masuk UI, lulus masuk jadi akuntan publik. Sekarang ini, orang membayar akuntan publik untuk memanipulasi nilai pajak dan aset. *SIGH*. Jadi gak ada yang beres ~ dll. Yah, udah gue jadi bingung, apa lagi dia nanya saran gue. Buah, gue gak pengalaman ...

Installing Goodix Fingerprint Reader Driver on Fedora

I currently have a Lenovo Thinkpad L14 laptop equipped with fingerprint. I was `belok` from KDE Neon to use Fedora 40 because of someone. Now I am tempted to enable my fingerprint: lsusb | grep -i fingerprint Bus 001 Device 004: ID 27c6:55b4 Shenzhen Goodix Technology Co.,Ltd. Fingerprint Reader Dump the firmware Assuming this is a fresh install, lets do some magic by getting some dependencies: sudo dnf install gcc git python-pip python-devel openssl Let's get the source code: git clone --recurse-submodules https://github.com/goodix-fp-linux-dev/goodix-fp-dump.git cd goodix-fp-dump Create an isolated Python environment: python -m venv .v source .v/bin/activate Do the magic: sudo su pip install -r requirements.txt python run_55b4.py exit There are some python scripts available. I run run_55b4.py because my device ID is 27c6: 55b4 . It will spell some nonsense, which is a good thing. That nonsense actually the firmware captured by our device. Also, I typed exit becaus...

Vibe Coding Workflow

I am currently working for having A.I. workflow for generating projects. There are two things that need to be tackled for that: 1) hallucinations; and 2) old codes. I have met several patterns to tackle those two and just need to formulate the patterns into a general flow. Thankfully, a video of building fullstack app using A.I. from Raf Dev channel inspired me to make the formulation. He used multiple A.I. engines to his need: He used Google Gemini to onboard his ideas and summarized it. He forked a boilerplate of NextJS project into a new project. Then, he added the summary from Google Gemini into a file for context. He used QWEN Code, a QWEN3 code engine that is a fork from Gemini CLI, to build the project. When working with an existing project, A.I. will take the whole project as a context. It also means that it will stick with the version used by the libraries. It also will try to update its knowledge based on the common pattern in the project. Most of the time, it will use the c...