Pembaruan beta SteamOS 3.8.20 membawa perubahan penting bagi perangkat dengan GPU diskret. Pengelolaan VRAM kini dibuat lebih efisien sehingga game berpeluang berjalan lebih mulus saat memori grafis mulai menipis.
Perubahan ini menarik perhatian karena perangkat berbasis SteamOS kerap menghadapi keterbatasan memori grafis. Ketika VRAM penuh, sistem lama lebih mudah memindahkan data ke area yang aksesnya lebih lambat, dan kondisi itu bisa memicu penurunan respons saat bermain.
VRAM, GTT, dan sumber perlambatan
Pada GPU diskret, memori utama grafis disebut VRAM. Di luar itu, ada pula pool memori lain bernama Graphics Translation Table atau GTT yang tetap dikelola sistem operasi, tetapi diakses GPU lewat antarmuka PCIe.
Akses melalui PCIe memiliki bandwidth lebih rendah dan latensi lebih buruk dibandingkan VRAM. Karena itu, ketika data game masuk ke GTT, performa bisa ikut turun dan stutter lebih mudah muncul.
Sistem operasi biasanya berusaha menjaga data yang paling penting tetap berada di VRAM. Namun saat kapasitas tidak cukup, memory manager harus melakukan eviction dan memindahkan sebagian data ke GTT agar alokasi tetap berjalan.
Pendekatan baru lewat cgroups
Solusi yang masuk ke SteamOS beta ini memanfaatkan pendekatan Linux control groups atau cgroups. Mekanisme kernel tersebut memberi kontrol lebih rinci atas alokasi, prioritas, dan pengelolaan sumber daya untuk kelompok proses tertentu.
Dalam skema baru, permintaan alokasi VRAM tidak lagi hanya menetapkan VRAM sebagai domain tunggal. GTT ikut dimasukkan sebagai domain cadangan, sehingga kernel tetap memprioritaskan VRAM tanpa harus memaksa proses lain di VRAM tersingkir hanya demi menyediakan ruang.
Pendekatan ini berasal dari gagasan Natalie Vock, kontraktor independen untuk Valve pada RADV, yang sebelumnya sudah menulis soal masalah alokasi dan penggunaan VRAM di Linux. Valve kemudian menerapkan ide tersebut ke SteamOS.
Hasil pengujian Cyberpunk 2077
Perubahan itu diuji pada Cyberpunk 2077 di GPU dengan 8 GB memori khusus. Dalam pengujian awal, sistem masih memakai 1.370 MB GTT, sementara game menggunakan 6.105 MB dan sebagian VRAM juga dipakai aplikasi latar belakang.
Setelah patch diterapkan, pemakaian VRAM Cyberpunk 2077 naik menjadi 7.395 MB. Pada saat yang sama, penggunaan GTT turun dari 1.370 MB menjadi 650 MB.
Perpindahan ini penting karena lebih banyak data kini berada di tempat yang lebih tepat. Dampaknya, game menjadi lebih kecil kemungkinan mengalami jeda panjang saat data terus berpindah antar memori.
| Pengujian | Sebelum Patch | Sesudah Patch | Perubahan |
|---|---|---|---|
| Pemakaian VRAM Cyberpunk 2077 | 6.105 MB | 7.395 MB | Naik |
| Pemakaian GTT | 1.370 MB | 650 MB | Turun |
Manfaat paling terasa di perangkat GPU diskret
Dampak terbesar dari perubahan ini diperkirakan muncul pada Steam Machine dan perangkat lain yang menjalankan SteamOS dengan GPU diskret. Pada perangkat seperti itu, pemisahan memori grafis khusus memberi ruang manfaat yang lebih nyata.
Untuk Steam Deck, pengaruhnya disebut tidak sebesar itu karena perangkat tersebut memakai GPU terintegrasi. Dalam sistem seperti ini, VRAM dan GTT sama-sama berada di memori sistem sehingga keuntungan dari pemisahan memori grafis khusus menjadi terbatas.
Meski begitu, tetap ada peluang manfaat kecil karena sistem tidak perlu memindahkan pointer memori ke lokasi di luar memori grafis khusus. Pembaruan beta SteamOS ini menunjukkan bahwa pengelolaan memori grafis di Linux terus bergerak ke arah yang lebih sadar terhadap kebutuhan game.
