Kartu grafis 3dfx Voodoo 3 3000 PCI yang mendapat dukungan inisialisasi baru di Linux kernel 7.3

Linux 7.3 Hidupkan Kembali Voodoo 3 untuk Non-x86

Penulis:Nur Hamzah
Terbit:
Diperbarui:
⏱️4 menit membaca
Bagikan:
  • Linux kernel 7.3 memperbarui driver tdfxfb agar bisa menginisialisasi Voodoo 3 secara mandiri
  • Driver baru memungkinkan kartu bekerja di sistem non-x86, sistem dengan GPU primary lain, dan BIOS baru
  • Pengembang Daniel Palmer menggunakan Voodoo 3 di Amiga 4000 dengan PCI bridge saat masalah muncul
  • Kode inisialisasi manual saat ini khusus untuk Voodoo 3, dukungan Voodoo 4/5 dihapus karena BIOS berbeda
  • Proyek eksperimental smoltdfx dan smolminigl memungkinkan akselerasi 3D dan menjalankan Quake di hardware asli
  • Palmer mengembangkan emulator QEMU dengan bantuan Claude untuk debugging
  • Hasil praktis di x86-64 modern: framebuffer /dev/fb0 untuk virtual console Linux
  • Keterbatasan: fbdev adalah antarmuka lawas, bukan pengganti DRM/KMS modern
  • Potensi penggunaan untuk PCI passthrough ke VM dengan guest Windows 98 atau DOS

Telset.id – Linux kernel 7.3 akan membawa pembaruan nostalgia untuk kartu grafis 3dfx Voodoo 3, salah satu GPU paling ikonik di akhir 1990-an. Kernel akan memperbarui driver framebuffer tdfxfb agar mampu menginisialisasi Voodoo 3 secara mandiri tanpa bergantung pada firmware sistem untuk menjalankan video BIOS kartu tersebut.

Perubahan kecil ini memiliki tujuan yang sangat spesifik dan menjadi contoh bagaimana hardware lawas masih mendapat perhatian di Linux modern. Pengguna yang memasang Voodoo 3 di sistem non-x86 atau platform tidak biasa kini bisa melihat kartu tersebut berfungsi sebagai display adapter yang sebenarnya.

Masalah utamanya, driver tdfxfb selama ini mengasumsikan kartu Voodoo sudah diinisialisasi oleh firmware PC. Asumsi ini masuk akal pada PC x86 konvensional karena firmware sistem akan mengeksekusi video BIOS kartu saat boot, mengonfigurasi hardware, lalu menyerahkan Linux perangkat yang sudah bisa menampilkan gambar. Namun asumsi ini gagal pada platform baru yang tidak mengeksekusi VGABIOS.

Deskripsi patch dari pengembang Daniel Palmer secara khusus menyebut komputer non-x86, sistem dengan kartu grafis lain sebagai primary, dan BIOS baru yang tidak bisa menjalankan video BIOS lama. Palmer menggunakan Voodoo 3 di Amiga 4000 dengan PCI bridge saat masalah ini muncul. Linux bisa mendeteksi kartu, tetapi Voodoo tetap tidak terinisialisasi sehingga muncul pesan “no signal detected”.

Kode baru menggunakan informasi konfigurasi dari video BIOS kartu untuk melakukan inisialisasi dari Linux. Dengan begitu, driver bisa mengaktifkan inti VGA dan menampilkan display tanpa bergantung pada firmware sistem. Saat ini kode inisialisasi manual baru ditujukan khusus untuk Voodoo 3. Palmer awalnya mencatat dukungan untuk kartu Voodoo 4 dan 5 berbasis VSA-100, tetapi tata letak BIOS mereka berbeda sehingga dukungan itu dihapus dari seri patch saat ini. Kode telah diuji pada sistem x86-64 modern dan Amiga 4000 dengan Mediator PCI bridge.

A photograph of an Amiga 4000 with its external case removed.

Pada PC x86-64 modern dengan Voodoo 3 terpasang, hasil praktisnya cukup sederhana. Memuat tdfxfb akan menghasilkan framebuffer Linux yang berfungsi, biasanya muncul sebagai /dev/fb0, dengan Voodoo menggerakkan display untuk virtual console Linux. Ini cukup untuk mengubah Voodoo dari “perangkat PCI yang bisa diidentifikasi Linux” menjadi display adapter yang benar-benar menampilkan piksel di layar meski firmware tidak menginisialisasinya terlebih dahulu. Aplikasi yang memakai antarmuka framebuffer Linux juga bisa menggambar ke perangkat ini.

Namun di sinilah batas pekerjaan ini terlihat. Linux fbdev adalah antarmuka grafis lawas yang sudah lama digantikan infrastruktur DRM/KMS Linux. Memuat tdfxfb tidak memberikan Mesa stack, OpenGL modern, akselerasi Wayland, atau fungsi 3D yang diharapkan. Ini pada dasarnya pengaturan “menyemprotkan piksel ke layar” yang sangat kuno, tetapi cukup berguna untuk console Linux, aplikasi framebuffer bergaya embedded, dan orang-orang yang memasang kartu grafis PCI eksotis ke komputer lawas yang lebih eksotis.

Bagian yang lebih menarik adalah Palmer sedang mengerjakan jalur 3D terpisah untuk Voodoo 3, dan upaya itu sudah jauh lebih maju dari sekadar pekerjaan framebuffer. Antarmuka eksperimental mengekspos ruang register Voodoo ke userspace melalui perangkat misc /dev/tdfx3d baru. Antarmuka mmap() memungkinkan software memprogram hardware 3D kartu secara langsung. Di atasnya ada smoltdfx, library userspace kecil untuk menggerakkan Voodoo 3, dan smolminigl, implementasi OpenGL 1.x kecil yang dibangun di atasnya.

Palmer mengatakan dia telah menguji proyek ini pada hardware Voodoo 3 asli dan bisa merender langsung melalui register kartu tanpa X, Mesa, atau Glide. Palmer mengembangkan pekerjaan ini bersama emulasi QEMU untuk Voodoo 3. Pengembang mengatakan Claude membantu membangun emulator untuk men-debug masalah mendapatkan kartu bekerja di Amiga-nya. Program uji kini bisa dijalankan terhadap kartu emulasi dan hardware asli, dengan perbedaan diumpankan kembali ke emulator hingga perilakunya cocok.

Proyek smoltdfx menggunakan tes rendering yang sama terhadap QEMU dan hardware Voodoo 3 fisik, membandingkan frame digest untuk menangkap perbedaan. Menurut Palmer, implementasi MiniGL yang dihasilkan sudah bisa menjalankan Quake di kartu asli, meski performanya belum bagus dan beberapa masalah dengan kemampuan multitexturing Voodoo 3 masih perlu diselesaikan.

A screenshot of Quake's E1M6, The Door to Cthon.

Totalnya adalah stack grafis 3dfx yang sangat eksperimental dibangun dari bawah ke atas: Linux menyediakan framebuffer dan akses perangkat tingkat rendah, program userspace memprogram Voodoo secara langsung, dan implementasi OpenGL ringan berada di atasnya untuk memberikan fungsi yang cukup bagi software 3D klasik untuk memerintah kartu.

Hal ini bisa sangat menarik untuk komputasi retro dan virtualisasi. Voodoo 3 PCI adalah perangkat yang secara konseptual bisa ditugaskan ke mesin virtual menggunakan PCI passthrough, memungkinkan guest OS berbicara langsung ke akselerator asli dengan driver 3dfx yang akurat pada zamannya. Dalam skenario ideal, host Linux modern bisa menyerahkan Voodoo 3 asli ke guest Windows 98 atau DOS dan membiarkan guest menggunakan hardware yang sama dengan yang diharapkan software lama. Detail teknisnya jauh lebih rumit dari konsepnya, terutama soal reset dan mengekspos hardware lama dengan bersih, tetapi kemampuan baru untuk menginisialisasi Voodoo yang tidak aktif dari Linux setidaknya menjadi bagian berguna dari teka-teki ini.

A photograph of a 3dfx Voodoo 3 3000 PCI graphics card.

Untuk saat ini, headline lebih signifikan daripada fitur langsungnya. Linux 7.3 tidak tiba-tiba mengubah Voodoo 3 berusia 25 tahun menjadi GPU yang bisa dipakai; ini membuat driver framebuffer yang ada mampu menghidupkan kartu di sistem tempat firmware tidak bisa melakukannya, sebuah lubang kecil namun nyata dalam dukungan hardware. Yang lebih luar biasa, upaya yang sama sudah merambah ke akselerasi 3D eksperimental di hardware asli, dengan library userspace Voodoo 3 dan implementasi OpenGL yang mampu menjalankan Quake. Voodoo 3 mungkin sudah berusia lebih dari 25 tahun, tetapi seseorang masih mengajari Linux trik baru dengannya di 2026.

Ikuti Telset.id di Google NewsFollow

Komentar

Belum ada komentar.