Sabtu, 22 Agustus 2026

Menundukkan Thunar XFCE: Memaksa Hybrid GPU di MPV via Wrapper Script

Sebagai pengguna Linux yang sudah mencicipi manis pahitnya mengelola *core system*, ada kepuasan tersendiri ketika kita berhasil menjinakkan perangkat keras lama. Laptop Acer Aspire jadul saya—dipersenjatai Intel Core i5-4200U (Haswell) dan dGPU AMD Radeon HD 8670M (arsitektur GCN 1.0 Oland)—baru saja bermigrasi ke Fedora 44 XFCE. Target saya jelas: memaksa dGPU warisan tersebut berjalan di atas driver Vulkan modern (Mesa RADV) menggunakan parameter kernel radeon.si_support=0 amdgpu.si_support=1.

Konfigurasi awal berjalan sempurna. Perintah legendaris DRI_PRIME=1 yang digabungkan dengan seleksi driver Vulkan VK_LOADER_DRIVERS_SELECT=*intel*,*radeon* sukses membuat aplikasi berat seperti Blender berjalan mulus di atas arsitektur Oland. Namun, petaka estetika muncul ketika saya mencoba menikmati film di pemutar video favorit sejuta umat: MPV Player.

Gejala: Sukses di Terminal, Mandul di GUI
Sebagai *user*, saya tidak suka membuka terminal hanya untuk memutar sebuah file video. Mekanisme ideal adalah melakukan klik kanan pada file .mkv di manajer file Thunar, memilih opsi Open With MPV, dan membiarkan sistem bekerja di balik layar. Namun, insting saya curiga ketika suhu CPU melonjak dan kipas laptop mulai meraung keras saat memutar film *The Hobbit* beresolusi tinggi.

Saya menekan kombinasi sakral Shift + i di MPV untuk memunculkan statistik internal. Jendela statistik hanya memuntahkan baris teks: Display: gpu-next (eDP-1) tanpa ada tanda-tanda API Vulkan maupun nama dGPU AMD saya yang aktif. Pemutar video tersebut berjalan pincang menggunakan iGPU Intel Haswell bawaan.

Analisis Kesalahan: Kedegilan Thunar dan Mime Type Association
Langkah pertama dalam *troubleshooting* tingkat lanjut adalah melakukan inspeksi proses murni. Saya membuka terminal paralel dan mengeksekusi perintah pelacakan proses:

ps aux | grep mpv

Output yang keluar di terminal memperlihatkan akar masalahnya secara telanjang:
ramaxd  16223  40.4  6.0  mpv --player-operation-mode=pseudo-gui /run/media/DATA/The_Hobbit.mkv

Di mana variabel env DRI_PRIME=1 yang sudah saya tanam sebelumnya? Mengapa sistem mengabaikannya? Di sinilah letak jebakan batasan arsitektur Desktop Environment (DE) XFCE,

Secara teori, memodifikasi berkas peluncur lokal di ~/.local/share/applications/mpv.desktop atau bahkan menimpa berkas sistem di /usr/share/applications/mpv.desktop dengan baris perintah Exec=env DRI_PRIME=1 ... mpv seharusnya sudah cukup. Namun, manajer file Thunar memiliki mekanisme keamanan internal yang sangat ketat terkait penanganan *Mime Type*.

Ketika aksi *Open With* dipicu via klik kanan GUI, Thunar akan mengabaikan perintah pembungkus env yang didefinisikan pada baris Exec=. Thunar secara paksa melakukan pemotongan string (*string parsing*), mengekstrak *absolute path* biner utama murninya saja (yaitu /usr/bin/mpv), lalu langsung mengeksekusinya tanpa membawa variabel environment eksternal. Akibatnya, MPV selalu diluncurkan tanpa instruksi *render offloading* ke GPU AMD.

Solusi Pamungkas: Strategi Pembajakan Biner (Wrapper Script)

Karena lingkungan GUI menolak membaca berkas konfigurasi desktop secara patuh, saya memutuskan untuk memotong jalur eksekusi tersebut langsung di tingkat sistem berkas (*file system level*). Jika Thunar bersikeras memanggil /usr/bin/mpv, maka saya akan memberikan skrip tiruan yang menyamar sebagai MPV, namun sudah disuntik dengan variabel hybrid GPU yang kita butuhkan. Ini adalah trik *wrapper script* klasik.

Langkah 1: Mengamankan Biner Asli
Langkah pertama adalah memindahkan biner MPV yang asli ke nama baru agar tidak hilang dan tetap bisa dipanggil di akhir proses eksekusi skrip:
sudo mv /usr/bin/mpv /usr/bin/mpv.real

Langkah 2: Menanam Skrip Penyamar

Selanjutnya, saya membuat berkas teks baru tepat di lokasi biner asli yang selalu dicari oleh Thunar menggunakan teks editor:
sudo mousepad /usr/bin/mpv

Di dalam berkas tersebut, saya suntikkan variabel environment agar dibaca secara murni oleh kernel Linux sebelum aplikasi utama terbuka:
#!/bin/bash
export DRI_PRIME=1
export VK_LOADER_DRIVERS_SELECT=*intel*,*radeon*
exec /usr/bin/mpv.real "$@"

Penggunaan argumen "$@" di akhir baris sangat krusial agar skrip ini mampu menangkap dan meneruskan lokasi *path* file video yang diklik kanan oleh Thunar ke biner asli.

Langkah 3: Memberikan Hak Kuasa Eksekusi

Langkah terakhir adalah memastikan sistem mengizinkan berkas teks penyamar ini berjalan sebagai aplikasi biner dengan memberikan hak akses *executable*:
sudo chmod +x /usr/bin/mpv

Verifikasi Akhir: Kemenangan Mutlak 
Saya menutup seluruh sesi pengujian, kembali ke manajer file Thunar, lalu melakukan klik kanan pada film *The Hobbit* dan memilih *Open With MPV*. Di terminal, saya jalankan kembali perintah pemantau:
ps aux | grep mpv

Sistem memuntahkan output baru yang melegakan dada:
ramaxd  17343  84.2  5.6  /usr/bin/mpv.real --player-operation-mode=pseudo-gui /run/media/DATA/The_Hobbit.mkv


Kemunculan nama proses /usr/bin/mpv.real menandakan skrip pembungkus kita telah berhasil mencegat panggilan Thunar, mengaktifkan instruksi GPU AMD, lalu melemparkannya ke pemutar asli.

Untuk melihat apakah mpv menggunakan AMD Radeon via API Vulkan atau tidak, cara paling mudah adalah menjalankan mpv lewat terminal dengan parameter info atau stats, atau memeriksa log yang dihasilkan.  Saya jalankan mpv dari Terminal dengan menambahkan opsi --gpu-api=vulkan dan --msg-level=all=v:libplacebo=v atau melihat log terminal:

mpv --gpu-api=vulkan --msg-level=cplayer=v,vo=v nama_video.mkv


Log terminal terbaru ini memberikan konfirmasi mutlak dan 100% akurat bahwa AMD Radeon via API Vulkan sukses digunakan untuk memproses video yang saya putar.


Bukti Validasi dari Log Terminal: 

Deteksi Dua GPU: 

  • Sistem mendeteksi GPU 0 sebagai AMD Radeon diskrit dan GPU 1 sebagai Intel HD Graphics bawaan laptop. 
  • Pemilihan Perangkat Aktif: mpv langsung menunjuk Device Name: AMD Radeon HD 8600 / 8700M (RADV OLAND). 
  • ** Driver yang Digunakan:** Tertera jelas Driver name: radv dan Driver ID: VK_DRIVER_ID_MESA_RADV. Ini adalah driver Vulkan open-source standar terbaik untuk GPU AMD di Linux (Mesa). 
  • Inisialisasi Sukses: Kalimat terakhir menyatakan Spent 18.537 ms creating vulkan device. Artinya, mpv berhasil membuat dan membuka jalur komunikasi grafis langsung dengan GPU AMD lewat Vulkan tanpa mengalami kegagalan (fallback).


Satu lagi masalah kompleksitas *desktop environment* Linux berhasil ditundukkan dengan pemahaman fundamental sistem berkas yang tepat. *Happy hacking!*

This Is The Newest Post


EmoticonEmoticon