Aktivasi PRIME DRI3 Di Slackware64 Current

Submitted by w41lf0x on Sat, 10/03/2015 - 19:14

slackwareApa kabar? Sudah lama sekali ya, saya pos artikel baru di blog saya ini. Maklumlah, sibuk ber-sosial-media. Siapa tahu dapat jabatan macam Fadjroel. Kali ini saya ingin mengulas tentang PRIME atau mekanisme GPU Offloading dengan menggunakan fasilitas vgaswitcheroo di kernel Linux di Slackware64-current (last upgrade on 23-09-2015). Dalam tulisan saya setahun yang lalu, saya sudah menulis tentang PRIME di versi Slackware sebelumnya. Silakan baca juga artikel tersebut untuk melengkapi informasi di artikel ini karena saya tidak akan membahas bagaimana mengaktifkan dan memastikan sistem mendukung PRIME atau tidak.

Selain soal PRIME, saya juga akan membagikan resep saya kepada gamers pengguna Slackware bagaimana cara memanfaatkan fitur MESA 11 yang sudah dilengkapi dengan Gallium Direct3D state tracker (gallium nine) yang berguna untuk menerjemahkan instruksi Direct3D Windows ke hardware langsung menggunakan driver Gallium. Sayang sekali jika fitur hebat ini tidak digunakan oleh WINE. Padahal cukup dengan menerapkan patch NINE (wine-d3d9-patch) ke kode WINE dan bangun ulang, WINE sudah bisa menggunakan instruksi Direct3D versi 9 secara langsung tanpa harus dikonversi ke OpenGL. Kinerjanya bisa sampeyan lihat di hasil benchmark di artikel ini.

Permasalahan pertama yang harus saya selesaikan ternyata terletak pada instalasi Xorg Slackware64-current. Xorg 1.17.2 yang dipaketkan TIDAK MENDUKUNG PRIME jika fitur DRI3 diaktifkan. Saya harus menggunakan DRI2 juga ingin menggunakan PRIME dan ini sangat menyusahkan serta menyebalkan. Berikut ini adalah hasil saat menggunakan PRIME di DRI2:

  • Kinerja grafis sangat buruk, lambat, dan penggunaan CPU sangat tinggi. Artinya komputasi grafis tidak sepenuhnya dilakukan oleh GPU diskrit, CPU juga masih ikut campur dan menyebabkan penggunaan CPU menjadi tinggi dan akhirnya CPU kepanasan.
  • Aplikasi WINE seringkali kehilangan gambar jika saya berpindah jendela. Saya harus menunggu beberapa detik sebelum gambar di jendela aplikasi WINE muncul kembali. Hal ini disebabkan oleh lambatnya proses video sync di DRI2. Di DRI3 permasalahan ini diatasi dengan menerapkan fence sync.

Berikut ini adalah hasil benchmark menggunakan Unigine Valley Benchmark v1.0 di DRI2

dri3-direct3d-02

Untuk dapat mengaktifkan PRIME di DRI3 saya harus membangun ulang seluruh paket X11 Slackware64-current dengan mengganti beberapa versi tarball kode sumber X11:

  • xorg-server-git_20150708_991712f.tar.gz
  • xf86-video-amdgpu-git_20150909_9945b4a.tar.xz
  • xf86-video-ati-git_20150822_0288a4b.tar.xz
  • xf86-video-intel-git_20150915_23986f0.tar.xz
  • xf86-input-libinput-git_20150903_6abd341.tar.xz
  • xf86-input-mouse-git_20150727_c22d307.tar.xz
  • xf86-input-evdev-git_20150120_034be31.tar.xz

Saya harus memasang sendiri libinput-0.21.0 sebagai dependensi dari xf86-input-libinput. Jika tidak maka saya tidak dapat menggunakan usb eksternal. SlackBuild untuk libinput saya unggah ke repo wlsbuild di github. Saya menggunakan SlackBuild X11 milik Slackware64-current dan menambahkan xf86-video-amdgpu dan xf86-input-libinput ke daftar modul yang harus dibangun.

Setelah semua paket X11 baru terpasang saya mencoba menggunakan PRIME di DRI3. Sayangnya opsi DRI3 masih harus diaktifkan manual dengan menggunakan xorg.conf. Silakan mengunduh xorg.conf untuk PRIME di tautan yang ada di forum diskusi Archlinux ini. Berikut ini hasil benchmark menggunakan program benchmark yang sama

dri3-direct3d-01 dri3-direct3d-03 dri3-direct3d-04

Berikut ini adalah suhu mesin sebelum dan sesudah PRIME aktif

dri3-direct3d-05 dri3-direct3d-06

Bagaimana? Mantab kan Linux?