- Percepatan oleh perangkat keras en Linux Itu tergantung pada VA-API, driver Konfigurasi browser dan variabel lingkungan yang tepat dan benar.
- Sangat penting untuk menginstal driver VA-API yang benar (i965/iHD di Intel, Mesa pada AMD/Nouveau) dan periksa dengan vainfo codec apa saja yang sebenarnya didukung oleh GPU tersebut.
- Browser berbasis Firefox dan Chromium memerlukan pengaktifan flag tertentu dan, dalam banyak kasus, peluncuran browser dengan parameter tambahan untuk menggunakan VA-API.
- Memaksa penggunaan H.264 dengan ekstensi seperti h264ify dan memeriksa penggunaan GPU dengan alat seperti intel_gpu_top atau DevTools memastikan pemutaran yang lebih lancar dan efisien.
Jika Anda menggunakan Linux setiap hari, Anda mungkin memperhatikan bahwa saat memutar video di browser, kipas berputar kencang, penggunaan CPU mencapai 100%, dan laptop terasa seperti akan terbang. Ini biasanya pertanda bahwa akselerasi video perangkat keras tidak diaktifkan dengan benar: prosesor akhirnya melakukan pekerjaan yang seharusnya dilakukan oleh GPU, sehingga menghasilkan lebih banyak kebisingan, suhu lebih tinggi, dan masa pakai baterai lebih pendek.
Kabar baiknya adalah saat ini Firefox, Chromium, dan hampir semua turunannya sudah menyertakan dukungan nyata untuk VA-API dan akselerasi perangkat keras di Linux, meskipun jarang disetel dengan baik sejak awal. Dalam panduan ini, kita akan membahas, langkah demi langkah dan secara detail, cara mempersiapkan driver, cara mengaktifkan VA-API di browser utama, dan cara memverifikasi bahwa video sedang didekode pada GPU dan bukan CPU.
Apa itu akselerasi perangkat keras video dan mengapa Anda perlu mengaktifkannya?
Ketika kita berbicara tentang akselerasi perangkat keras di browser, yang kita maksud adalah memindahkan tugas berat dekode dan pemrosesan video ke GPU, alih-alih menyerahkan semuanya ke CPU. Dalam praktiknya, ini berarti bahwa saat memutar konten multimedia (YouTube, Netflix , Twitch, dll.), kartu grafis menangani dekompresi dan pemrosesan frame video, sementara CPU jauh lebih ringan bebannya.
Teknologi yang menghubungkan aplikasi dan GPU untuk video di Linux disebut VA-API (Video Acceleration API), dan ini adalah standar de facto di desktop Linux. Banyak program yang mendukungnya: browser, pemutar media seperti VLC atau OBS Studio untuk encoding/decoding dengan kartu grafis, dan bahkan alat pengeditan dan perekaman.
Keuntungan praktis dari akselerasi video yang berfungsi dengan baik cukup jelas dalam penggunaan sehari-hari: penggunaan CPU lebih rendah, konsumsi energi lebih rendah, suhu lebih rendah, dan pemutaran lebih stabil, terutama pada laptop lama atau yang memiliki prosesor sederhana (misalnya, 2 inti/4 thread).
Di sisi lain, ada beberapa kekurangan dan keterbatasan yang perlu diingat sejak awal: banyak GPU lama tidak lagi mendukung codec modern, beberapa browser membatasi resolusi saat menggunakan H.264 alih-alih VP9/AV1, dan implementasi VA-API yang lemah dapat menyebabkan artefak, layar hijau, atau tersendat pada video tertentu.
Selain itu, dukungan Linux masih agak lebih rumit daripada Windows : kombinasi driver, VA-API, dan browser tidak selalu berfungsi pada percobaan pertama, dan situasinya dapat sangat bervariasi tergantung pada apakah Anda menggunakan Intel, AMD, atau NVIDIA , dan tergantung pada distribusinya. Oleh karena itu, sangat penting untuk terlebih dahulu memahami perangkat keras apa yang Anda miliki, driver apa yang Anda gunakan, dan codec apa yang didukung GPU Anda.
Periksa jenis GPU yang Anda miliki dan driver apa yang digunakan oleh Linux Anda.
Sebelum mengubah apa pun di Firefox atau Chromium, Anda perlu mengetahui dengan pasti kartu grafis apa yang terpasang dan driver mana yang dimuat oleh kernel. Ini sangat penting untuk memilih paket VA-API yang tepat dan menghindari kesalahan aneh di kemudian hari.
Untuk mengidentifikasi GPU pada sistem berbasis Linux, cukup jalankan sebuah terminal sesuatu seperti: lspci -k | grep -EA3 'VGA|3D|Display'Output tersebut akan memberi tahu Anda model kartu grafis dan modul kernel yang digunakannya, misalnya, Intel UHD Graphics 600/620 beserta drivernya. i915.
Jika komputer Anda hanya memiliki satu GPU, Anda biasanya akan melihat perangkat berlabel "Pengontrol kompatibel VGA" dan driver yang digunakan. Namun, jika Anda memiliki laptop hibrida (Intel iGPU + AMD/NVIDIA dGPU), dua perangkat grafis akan muncul. Ini penting karena dalam skenario multi-GPU, dua perangkat rendering DRI terlibat.
Untuk memastikan perangkat rendering apa yang Anda miliki, cantumkan isi dari /dev/dri dengan: ls /dev/driPada komputer sederhana, Anda akan melihat sesuatu seperti ini: card0 y renderD128; pada versi hibrida, mereka juga akan muncul card1 y renderD129.
Jika Anda ingin melangkah lebih jauh dan mencari tahu driver mana yang terkait dengan setiap perangkat DRI, Anda dapat berkonsultasi dengan /sys/kernel/debug/dri/128/name, /sys/kernel/debug/dri/129/name, Dll Sebagai contoh, file yang berisi “i915” menunjukkan bahwa node render ini sesuai dengan Intel iGPU, sedangkan file dengan “radeon”, “amdgpu” atau “nouveau” akan mewakili GPU AMD atau NVIDIA yang digunakan oleh sistem.
Driver VA-API di Ubuntu dan distribusi turunannya: Intel, AMD, dan NVIDIA
Setelah GPU teridentifikasi, langkah selanjutnya adalah menginstal driver VA-API yang sesuai agar kartu grafis dapat melakukan dekode video melalui perangkat keras. Pada distribusi berbasis Debian/Ubuntu, hal ini dilakukan melalui apt dengan beberapa paket utama.
Untuk GPU Intel, pada dasarnya ada dua keluarga driver VA-API: i965 "klasik" dan iHD (intel-media-driver) yang lebih modern, dan biasanya tersedia varian gratis maupun berbayar. Secara umum:
- i965-va-driverDriver gratis untuk VA-API didukung pada generasi Cantiga, Ironlake, Sandy Bridge, Ivy Bridge, Haswell, Broadwell, Skylake, Kaby Lake, Coffee Lake, dan Cannon Lake.
- i965-va-driver-shaders: varian eksklusif untuk generasi yang sama, dengan optimasi tertentu.
- driver intel-media-vaDriver VA-API gratis direkomendasikan untuk Broadwell dan versi yang lebih baru (Skylake, Kaby Lake, Coffee Lake, Whiskey Lake, Cannon Lake, Ice Lake, Alchemist, Meteor Lake, dll.).
- intel-media-va-driver-tidak gratis: versi eksklusif dari versi sebelumnya, yang menambahkan fitur tambahan seperti pengkodean perangkat keras dalam codec modern seperti H.265, tergantung pada perangkat kerasnya.
Pada laptop biasa dengan Intel UHD 600/620, misalnya, Anda dapat menginstal varian modern dan berpemilik dengan: sudo apt install intel-media-va-driver-non-free vainfo. Paket vainfo Ini digunakan untuk memeriksa nanti codec apa saja yang didukung oleh GPU Anda.
Setelah instalasi, Anda seharusnya memiliki /usr/lib/x86_64-linux-gnu/dri/ sebuah berkas iHD_drv_video.so (untuk intel-media-driver) atau i965_drv_video.so (untuk i965). File biner inilah yang dimuat secara internal oleh VA-API ketika browser atau aplikasi lain meminta akselerasi video.
Untuk GPU AMD Radeon dan NVIDIA yang menggunakan driver open-source Nouveau, komponen utamanya di Ubuntu adalah mesa-va-drivers, yang menginstal backend VA-API yang diperlukan untuk kartu-kartu ini. Dalam kasus kartu NVIDIA dengan driver eksklusif, situasinya menjadi lebih rumit: VA-API sendiri tidak didukung secara langsung, melainkan melalui jembatan VDPAU→VAAPI (misalnya dengan vdpau-va-driver), namun saat ini browser hampir tidak lagi mengandalkan VDPAU.
Jika Anda memiliki sistem hybrid Intel + AMD atau Intel + NVIDIA dengan driver open-source, praktik yang umum dilakukan adalah menginstal driver VA-API untuk Intel (iHD atau i965) dan mesa-va-driverssehingga Anda dapat memilih GPU mana yang menangani dekode video. Nantinya kita akan melihat cara memilih perangkat DRI tertentu melalui variabel lingkungan.
Driver VA-API di Fedora dan kekhasannya dengan NVIDIA
Di Fedora, pendekatannya serupa, tetapi pengelola paket dan beberapa nama paket spesifik berbeda. Untuk grafis Intel, dukungan VA-API biasanya melibatkan instalasi:
Di terminal, dengan hak akses administrator, Anda dapat menggunakan: sudo dnf install libva-intel-driver intel-mediasdk intel-media-driverIni memastikan Anda memiliki driver klasik dan driver baru beserta pustaka terkaitnya.
Jika Anda menggunakan AMD Radeon atau NVIDIA dengan driver open-source Nouveau, dukungan VA-API sudah termasuk dalam paket tersebut. mesa-dri-driversyang biasanya terpasang secara default di Fedora Workstation. Meskipun demikian, pada beberapa sistem, hasil aktual dengan VA-API pada AMD/Nouveau mungkin tidak konsisten atau bahkan gagal.
Keunggulan Fedora dibandingkan Ubuntu di arena NVIDIA yang bersifat eksklusif adalah bahwa jembatan VDPAU untuk VA-API (sebagai libva-vdpau-driver) biasanya tersedia langsung dari repositori resmi. Sebagai contoh, Anda dapat menginstalnya dengan sudo dnf install libva-vdpau-driverNamun, hal itu tidak menjamin bahwa browser akan benar-benar menggunakan VDPAU dalam praktiknya.
Gunakan vainfo untuk memeriksa codec apa saja yang sebenarnya didukung oleh GPU Anda.
Menginstal paket saja tidak cukup: Anda perlu mengetahui codec dan mode (encoding/decoding) apa yang didukung GPU Anda melalui VA-API untuk menghindari masalah dengan pengaturan yang tidak memungkinkan. Ini ikut bermain vainfo, yang mencantumkan profil yang didukung untuk perangkat DRI dan driver VA-API tertentu.
Cara paling andal untuk menjalankan vainfo adalah dengan secara eksplisit menentukan nama driver dan perangkat rendering yang diinginkan, misalnya: LIBVA_DRIVER_NAME=iHD vainfo --display drm --device /dev/dri/renderD128Hal ini mencegah kebingungan pada sistem dengan beberapa GPU atau beberapa driver yang terpasang.
Output khas vainfo dimulai dengan menunjukkan versi dan driver VA-API, lalu menampilkan daftar panjang "profil dan titik masuk". Setiap baris biasanya memiliki profil codec (MPEG2, H264Main, H264High, HEVCMain, VP8, VP9, AV1…) dan mode input/output.
Yang menarik bagi kami dalam pemutaran video adalah munculnya entri seperti ini. VAEntrypointVLD untuk codec yang diinginkan, karena itu berarti GPU dapat mendekodenya secara perangkat keras. Sebagai contoh, lihat VAProfileH264High : VAEntrypointVLD menyiratkan dukungan dekode H.264; lihat VAProfileVP9Profile0 : VAEntrypointVLD Ini termasuk dukungan perangkat keras VP9, dan sebagainya.
Pada GPU yang lebih lama, Anda biasanya akan menemukan dukungan yang baik untuk H.264 tetapi kurangnya dukungan untuk VP8, VP9, atau AV1, sehingga Anda terpaksa menggunakan ekstensi browser untuk memaksa situs web menyajikan H.264 alih-alih codec yang lebih baru. Perlu diingat bahwa jika video hanya ada dalam format VP9/AV1, tidak ada trik khusus: video tersebut akan didekode oleh perangkat lunak.
Jika vainfo mengembalikan kesalahan seperti “va_openDriver() gagal” atau tidak dapat menginisialisasi driver yang diminta, GPU Anda kemungkinan tidak kompatibel dengan backend tertentu tersebut. Dalam hal ini, beralih dari iHD ke i965 pada sistem Intel lama sering kali menyelesaikan masalah, atau memverifikasi bahwa paket Mesa yang sesuai telah terinstal dengan benar untuk AMD/Nouveau.
Konfigurasikan variabel lingkungan untuk memperbaiki driver VA-API dan perangkat DRI.
Banyak tutorial mengasumsikan bahwa perangkat DRI pertama (renderD128) selalu merupakan iGPU dan bahwa sistem secara otomatis memilih driver yang tepat, tetapi dalam praktiknya, terutama pada laptop dengan beberapa GPU, hal ini mungkin tidak terjadi. Oleh karena itu, pentingnya mengatur variabel lingkungan tertentu sebelum meluncurkan browser.
Tiga variabel yang paling umum digunakan untuk mengontrol VA-API dan back-end grafis Firefox di Linux adalah:
- PERANGKAT_DRM_MOZ_WAYLAND: jalur ke perangkat DRI yang harus Anda gunakan (misalnya,
/dev/dri/renderD128o/dev/dri/renderD129). - LIBVA_DRIVER_NAME: nama singkat driver VA-API yang akan dimuat (
i965,iHD,nouveau,r600,radeonsi, Dll). - MOZ_X11_EGL / MOZ_ENABLE_WAYLAND: indikator bilangan bulat (0/1) untuk mengaktifkan penggunaan EGL dan rute spesifik tergantung pada apakah Anda menggunakan Xorg atau Wayland.
Sebagai contoh, untuk menjalankan Firefox dalam sesi X11 menggunakan Intel HD dengan driver iHD, Anda dapat menggunakan sesuatu seperti: MOZ_WAYLAND_DRM_DEVICE=/dev/dri/renderD128 LIBVA_DRIVER_NAME=iHD MOZ_X11_EGL=1 firefoxDi Wayland, variannya akan serupa tetapi dengan MOZ_ENABLE_WAYLAND=1 alih-alih MOZ_X11_EGL.
Jadi saya tidak perlu menulis ini setiap kali bootbanyak pengguna menambahkan LIBVA_DRIVER_NAME=iHD (atau siapa pun itu) ke file global /etc/environmentsehingga seluruh sistem memiliki driver VA-API tersebut secara default. Meskipun begitu, tetap simpan MOZ_WAYLAND_DRM_DEVICE dan MOZ_X11_EGL/MOZ_ENABLE_WAYLAND di peluncur atau naskah Firefox masih direkomendasikan untuk laptop hybrid.
Pada desktop seperti KDE Plasma, Anda dapat mengedit peluncur Firefox dan menambahkan "env" diikuti variabel ke perintah eksekusi sehingga Anda tidak selalu bergantung pada terminal. Sesuatu seperti Exec=env MOZ_WAYLAND_DRM_DEVICE=/dev/dri/renderD128 LIBVA_DRIVER_NAME=iHD MOZ_X11_EGL=1 firefox %u Biasanya cara ini berhasil dengan baik.
Aktifkan akselerasi perangkat keras di Firefox (VA-API + WebRender)
Mozilla memperkenalkan dukungan VA-API resmi di Firefox untuk Linux, dimulai dengan Wayland dan kemudian diperluas ke X11, tetapi untuk waktu yang lama fitur ini dinonaktifkan secara default atau hanya diimplementasikan sebagian. Itulah mengapa banyak tutorial merekomendasikan untuk mengubah beberapa preferensi internal agar dapat memanfaatkan fitur ini secara maksimal.
Hal pertama yang harus dilakukan adalah masuk ke halaman pengaturan lanjutan yang terkenal: ketik about:config Di bilah alamat, terima peringatan tersebut dan gunakan bilah pencarian di bagian atas. Dari situ, ada beberapa kelompok penyesuaian yang relevan.
Untuk mengaktifkan komposer berbasis GPU modern, Anda harus mengaktifkan mesin WebRender atau memaksakan penggunaan OpenGL: busca gfx.webrender.all dan menaruhnya ke benarDan jika Anda mau, Anda juga bisa memaksa. layers.acceleration.force-enabled a benar untuk memastikan bahwa Firefox mencoba memanfaatkan GPU.
Kedua, pastikan Firefox menggunakan FFmpeg dengan VA-API, bukan dekoder internalnya, jika sesuai. Untuk melakukan ini, temukan kunci-kunci ini dan sesuaikan nilainya:
- media.ffmpeg.vaapi.enabled → benar (memungkinkan penggunaan VA-API melalui FFmpeg).
- media.ffvpx.enabled → palsu (Nonaktifkan dekoder FFVPX internal untuk memaksa penggunaan FFmpeg).
- media.av1.diaktifkan → palsu Jika GPU Anda tidak mendukung AV1 secara perangkat keras, situs web akan lebih memilih menawarkan codec lain yang lebih "ramah".
- media.rdd-vpx.enabled → Pada GPU modern dengan dukungan perangkat keras VP9, Anda dapat mengakses benarPada grafik lama, lebih baik membiarkannya apa adanya. palsu.
Pada mesin dengan beberapa GPU dan driver open-source (Intel + AMD, misalnya), Anda juga dapat bermain-main dengan variabel MOZ_WAYLAND_DRM_DEVICE dan LIBVA_DRIVER_NAME untuk memutuskan apakah video tersebut didekode pada iGPU atau dGPU. Misalnya, menunjuk ke /dev/dri/renderD129 dengan LIBVA_DRIVER_NAME=r600 atau radeonsi untuk menggunakan Radeon sebagai akselerator video.
Pada sistem di mana, bahkan setelah menyesuaikan parameter ini, VP9 dan AV1 tetap terlalu memakan sumber daya, solusi praktisnya adalah memaksa penggunaan H.264 dengan ekstensi seperti h264ify atau Enhanced h264ify . Ekstensi ini memblokir VP8/VP9/AV1 di situs seperti YouTube dan secara khusus meminta aliran AVC1 (H.264), yang hampir semua GPU dengan VA-API dapat mendekode tanpa masalah.
Setelah Anda melakukan perubahan, tutup Firefox sepenuhnya, luncurkan kembali dengan variabel lingkungan yang sesuai, dan coba putar video YouTube 1080p60 sambil memantau beban CPU dan GPU. Anda akan terutama melihat peningkatan pada komputer yang berusia lebih dari satu dekade, di mana CPU sudah kesulitan memproses video beresolusi tinggi menggunakan perangkat lunak.
Pastikan Firefox menggunakan GPU untuk mendekode video.
Tampilan browser yang lebih lancar saja tidak cukup: Anda harus secara objektif memverifikasi bahwa VA-API sedang digunakan dan frame sedang didekode pada GPU. Ada beberapa cara untuk melakukan ini di Firefox di Linux.
Cara pertama adalah dengan melihat output dari terminal tempat Anda menjalankan Firefox dengan variabel lingkungan yang telah dikonfigurasi. Jika semuanya berjalan lancar, Anda akan melihat pesan dari libva info menunjukkan bahwa va_openDriver() returns 0 dan referensi ke driver yang dimuat (misalnya, i965 atau iHD) tanpa kesalahan selanjutnya.
Jika Anda menggunakan GPU Intel, Anda dapat menggunakan cara berikut: intel_gpu_top (bagian dari intel-gpu-tools) untuk melihat bagian aktivitas spesifik, seperti “Video”, yang mewakili persentase penggunaan mesin dekoding. Tanpa VA-API, Anda akan melihat kolom tersebut bernilai nol meskipun video tersendat-sendat; dengan VA-API aktif, kolom tersebut akan menampilkan persentase yang terlihat jelas saat video diputar.
Pada kartu grafis Radeon, alat yang setara adalah radeontop, yang menampilkan bilah penggunaan GPU dan VRAM. Meskipun tidak selalu memiliki bagian terpisah dan eksplisit untuk dekode video, mudah untuk melihat bagaimana aktivitas meningkat ketika VA-API berjalan dan driver (misalnya, r600 atau radeonsi) diarahkan dengan benar ke perangkat Radeon DRI.
Dalam lingkungan dengan beberapa GPU, Anda mungkin juga perlu menambahkan opsi seperti --bus di radeontop untuk memantau hanya kartu yang sesuai. Bagaimanapun, polanya tetap sama: jika beban CPU menurun dan GPU memiliki lebih banyak pekerjaan yang harus dilakukan saat kita memutar video, kita berada di jalur yang benar.
Terakhir, mengulangi pengujian yang sama dengan ekstensi h264ify diaktifkan dan dinonaktifkan memungkinkan kita untuk memverifikasi dampak nyata dari peralihan dari VP9/AV1 ke H.264 pada konsumsi sumber daya. Pengukuran yang diambil pada sistem dengan prosesor i5-2450M dan i7-7700HQ menunjukkan pengurangan penggunaan CPU yang, pada prosesor yang lebih sederhana, dapat mencapai setengahnya ketika VA-API diaktifkan.
Akselerasi perangkat keras di Chromium, Chrome, dan turunannya (VA-API + flag)
Chromium 88 menandai titik balik dengan memperkenalkan dukungan VA-API yang "serius" di Linux, meskipun dengan beberapa catatan: ketergantungan yang kuat pada Xorg, perlunya menggunakan flag tertentu, dan dukungan yang lebih baik untuk Intel dan NVIDIA daripada untuk Radeon. Meskipun demikian, dukungan ini telah diturunkan ke seluruh keluarga: Google Chrome , Edge, Brave, Vivaldi, Opera, dll.
Langkah pertama di browser berbasis Chromium mana pun adalah memeriksa halaman flag internal, yang dapat diakses dengan chrome://flags di Chrome dan Chromium, brave://flags dalam film Brave, edge://flags di Edge, vivaldi://flags dalam bahasa Vivaldi atau opera://flags di Opera. Setelah masuk, cari dan aktifkan setidaknya:
- Ganti daftar perenderan perangkat lunak → Diaktifkan (memaksa pengabaian daftar hitam GPU dan memaksa fitur akselerasi).
- Dekode video yang dipercepat perangkat keras → Diaktifkan (mengaktifkan dekode video perangkat keras).
Setelah mengaktifkan opsi-opsi ini, browser Anda akan meminta Anda untuk memulai ulang agar perubahan diterapkan; lakukan hal tersebut, lalu kunjungi situs web Anda. chrome://gpu (atau varian untuk browser Anda) untuk memeriksa status “Status Fitur Grafis” dan “Informasi Akselerasi Video”. Idealnya, semua hal yang relevan harus muncul sebagai "Dipercepat perangkat keras".
Poin penting selanjutnya dalam Chromium dan turunannya adalah bagaimana aplikasi dimulai dari baris perintah. Dalam sesi Xorg, biasanya disarankan untuk menambahkan flag tersebut. --use-gl=desktop, sedangkan pada sesi Wayland di mana browser berjalan di XWayland, hal itu sering digunakan --use-gl=egl untuk menghindari masalah.
Selain itu, terdapat serangkaian flag terkait VA-API di Chromium yang perlu ditambahkan, baik ke perintah eksekusi maupun ke file konfigurasi flag:
--enable-accelerated-video-decode--enable-accelerated-video-encode--enable-features=VaapiVideoDecoder--disable-features=UseChromeOSDirectVideoDecoder
Misalnya, di Xorg dengan Google Anda bisa menjalankan sesuatu seperti ini di Chrome versi stabil: google-chrome-stable --use-gl=desktop --enable-accelerated-video-decode --enable-accelerated-video-encode --enable-features=VaapiVideoDecoder --disable-features=UseChromeOSDirectVideoDecoderPola yang sama berlaku untuk Brave (brave-browser), Vivaldi (vivaldi), Opera (opera) atau Edge (microsoft-edge).
Pada distribusi seperti CachyOS, Arch, dan sistem serupa, banyak browser memungkinkan flag ini dipusatkan dalam file seperti... ~/.config/chromium-flags.conf, ~/.config/brave-flags.conf atau yang serupa. Alternatif umum lainnya adalah mengedit file tersebut. .desktop dari browser, salin dari /usr/share/applications a ~/.local/share/applications dan tambahkan bendera ke barisan Exec=.
Sekali lagi, jika Anda ingin semuanya tetap ada dan tidak bergantung pada terminal, sebaiknya edit pengaturan tersebut. .desktop atau peluncur di menu lingkungan desktop sehingga selalu menambahkan flag yang benar. Dengan cara ini, saat membuka browser dari menu atau dock, opsi VA-API akan selalu dipertimbangkan.
Memeriksa dekode perangkat keras di browser Chromium
Dalam keluarga Chromium, ada dua cara utama untuk memverifikasi bahwa dekode video terjadi di perangkat keras. Salah satunya lebih umum, dan yang lainnya memanfaatkan alat pengembangan.
Cara cepatnya adalah dengan mengunjungi chrome://gpu (atau yang setara di browser Anda) dan periksa apakah di “Informasi Akselerasi Video” terdapat entri dengan status “Dipercepat perangkat keras”. Ini memberikan gambaran umum tentang kemampuannya, tetapi tidak menjamin bahwa video tertentu akan benar-benar menggunakan GPU.
Untuk menguji contoh di dunia nyata, buka video (misalnya, di YouTube), lalu akses alat pengembang dengan menekan F12 atau Ctrl+Shift+I dan temukan tab Media (jika tidak terlihat, Anda akan menemukannya di menu tab tambahan). Di dalam Media, pilih pemutar untuk video yang sedang Anda putar.
Pada informasi detail pemain, Anda akan melihat kolom yang menunjukkan jenis dekoder video yang digunakan dan apakah "Dekoder perangkat keras" diatur ke benar. Idealnya, Anda akan melihat dekoder yang terkait dengan VA-API/GL dan dengan dekoder perangkat keras yang diaktifkan; jika sebaliknya Anda melihat nama seperti VpxVideoDecoder, FFmpegVideoDecoder o Dav1dVideoDecoder Tanpa merujuk pada perangkat keras, kemungkinan besar perangkat lunak sedang digunakan.
Pada beberapa versi lama, disarankan untuk menggunakan chrome://media-internals untuk pemeriksaan yang sama ini, dan tinjau bidang-bidang seperti kVideoDecoderName, di mana nilai bertipe MojoVideoDecoder Hal ini menunjukkan penggunaan akselerasi perangkat keras dibandingkan dengan dekoder perangkat lunak murni. Dengan perangkat modern, tab Media di DevTools sebagian besar telah menggantikan halaman tersebut.
Terakhir, Anda dapat menggabungkan verifikasi ini dengan alat pemantauan GPU yang mirip dengan yang ada di Firefox (intel_gpu_top, radeontop, amdgpu_top, nvtop, dll.), untuk memastikan bahwa ketika browser memutar video, mesin video GPU menunjukkan aktivitas yang sebenarnya.
Pengkodean dan codec: H.264, VP9, AV1 dan ekstensi seperti h264ify
Satu detail yang sering luput dari perhatian adalah, meskipun GPU mendukung VA-API, jika codec video tidak diimplementasikan dalam perangkat keras, Anda pasti akan menggunakan dekode perangkat lunak. Di sinilah ekstensi dan konfigurasi tambahan berperan.
H.264/AVC1 adalah codec "serbaguna" yang hampir semua GPU yang berusia beberapa tahun dapat tangani dengan baik melalui VA-API, sementara VP8, VP9, dan AV1 hanya dapat diakselerasi perangkat keras pada generasi yang relatif modern. Hal ini terlihat jelas pada pintu keluar vainfosedangkan GPU yang lebih lama hanya mendukung H.264 dan sedikit format lainnya.
Namun, platform seperti YouTube memprioritaskan VP9 atau bahkan AV1 untuk browser modern, menjadikan H.264 sebagai pilihan sekunder atau hanya untuk resolusi tertentu. Oleh karena itu, meskipun Anda telah mengkonfigurasi VA-API, jika YouTube memutuskan untuk menyajikan VP9 dan GPU Anda tidak mendukungnya, CPU akan menanggung beban yang lebih besar.
Di sinilah ekstensi seperti h264ify dan turunannya (Enhanced h264ify, dll.) sangat berguna: mereka memblokir VP8/VP9/AV1 dan memaksa situs web untuk menggunakan profil H.264 yang tersedia jika ada. Namun, jika tidak ada versi H.264 untuk video tertentu, mereka tidak dapat membuatnya.
Perlu dicatat bahwa ketika YouTube terpaksa menggunakan H.264, resolusi maksimum yang dapat ditampilkan seringkali terbatas pada 1080p dengan 60 FPS, sedangkan dengan VP9/AV1 dapat menawarkan resolusi 1440p, 4K, dan frame rate tinggi. Oleh karena itu, mengaktifkan h264ify terkadang berarti mengorbankan resolusi maksimum yang mungkin untuk mendapatkan pemutaran yang lebih lancar dan tidak terlalu membebani CPU.
Dalam kasus codec generasi berikutnya seperti AV1, hanya GPU yang sangat modern yang memiliki dukungan decoding perangkat keras yang sebenarnya, jadi pada sebagian besar PC saat ini, sebaiknya tetap nonaktifkan di browser jika Anda melihat kipas pendingin menjadi seperti turbin saat menonton video apa pun.
Dampak nyata pada kinerja: kapan sebaiknya melawan VA-API
Pengujian empiris yang dilakukan pada laptop dengan CPU dual-core, quad-thread (misalnya, i5-2450M yang lebih lama) menunjukkan bahwa mengaktifkan VA-API dan mendelegasikan decoding H.264 ke GPU dapat mengurangi penggunaan CPU rata-rata hingga hampir setengahnya saat memutar video 1080p60 di Firefox. Hal ini menghasilkan mesin yang lebih dingin, lebih tenang, dan pengalaman yang jauh lebih stabil.
Pada mesin yang lebih baru dengan prosesor 4-core/8-thread atau lebih tinggi (seperti i7-7700HQ), perbedaan persentase penggunaan CPU tidak terlalu dramatis, terkadang hanya sekitar 3-6% lebih rendah. Meskipun demikian, beban kerja cenderung terdistribusi lebih merata, dan lonjakan penggunaan ekstrem yang dapat menyebabkan sedikit lag berkurang.
Menariknya, ketika membandingkan pemutaran melalui browser menggunakan VA-API dengan pemutar seperti VLC yang juga dikonfigurasi dengan VA-API, penggunaan CPU browser biasanya jauh lebih tinggi. Hal ini menunjukkan masih ada ruang untuk perbaikan dalam cara browser mengintegrasikan VA-API dan mengelola transfer data antara CPU dan GPU di Linux.
Bagaimanapun, untuk laptop kelas menengah atau yang lebih tua, meluangkan waktu untuk menyempurnakan akselerasi perangkat keras dapat membuat perbedaan antara harus mengabaikan video 1080p dan mampu menikmati konten beresolusi tinggi tanpa sistem mengalami kesulitan. Pada mesin yang bertenaga, peningkatan memang ada, tetapi lebih halus, dan dalam banyak skenario, mungkin tidak perlu terlalu mempersulit keadaan jika sistem Anda sudah berkinerja "cukup baik."
Yang jelas, kombinasi Linux, browser modern, dan API VA masih agak tertinggal dibandingkan pengalaman yang dicapai di Windows, di mana metode untuk mendelegasikan video ke GPU lebih canggih dan terstandarisasi. Meskipun demikian, dengan langkah-langkah yang tepat, performa yang sangat baik juga dapat dicapai di desktop Linux.
Jika Anda sudah sampai sejauh ini, Anda sudah tahu bahwa mengaktifkan akselerasi video perangkat keras di Linux bukan hanya tentang mencentang kotak di browser Anda, tetapi tentang menyelaraskan driver VA-API, variabel lingkungan, flag internal, dan pilihan codec dengan benar sehingga Firefox, Chrome, Brave, dan lainnya bekerja dengan lancar dengan GPU Anda alih-alih membebani CPU Anda secara tidak perlu.
Penulis yang bersemangat tentang dunia byte dan teknologi secara umum. Saya suka berbagi ilmu melalui tulisan, dan itulah yang akan saya lakukan di blog ini, menunjukkan kepada Anda semua hal paling menarik tentang gadget, perangkat lunak, perangkat keras, tren teknologi, dan banyak lagi. Tujuan saya adalah membantu Anda menavigasi dunia digital dengan cara yang sederhana dan menghibur.