Awal tahun ini, Microsoft menunjukkan kepada dunia bagaimana Xbox Series X, dengan portofolio inovasi teknologinya , akan memperkenalkan era baru gameplay tanpa kompromi. Bersamaan dengan pengumuman konsol yang sebenarnya, microsoft meluncurkan Arsitektur Xbox Velocity , bagian penting dari bagaimana Xbox Series X akan menghadirkan pengalaman bermain game generasi berikutnya.
Microsoft senang menghadirkan DirectStorage, API dalam keluarga DirectX yang awalnya dirancang untuk Arsitektur Velocity ke PC Windows! DirectStorage akan menghadirkan teknologi IO terbaik di kelasnya ke PC dan konsol seperti yang dilakukan DirectX 12 Ultimate dengan teknologi rendering. Dengan PC berkemampuan DirectStorage dan game berkemampuan DirectStorage, Anda dapat menantikan waktu muat yang jauh berkurang dan dunia virtual yang lebih luas dan detail dari sebelumnya.
Dalam posting blog ini, microsoft akan memberi para penggemar game detail lebih lanjut tentang cara kerjanya dan bagaimana hal itu akan merevolusi game PC.
Evolusi teknologi penyimpanan dan pola IO game
Kemajuan terbaru dalam teknologi SSD dan PCIe, khususnya teknologi NVMe, memungkinkan PC game memiliki solusi penyimpanan yang memberikan bandwidth jauh lebih banyak daripada yang mungkin dilakukan dengan teknologi hard drive lama. Alih-alih puluhan megabyte per detik, drive seperti NVMe kustom konsol Xbox Series X yang akan datang dapat memberikan beberapa gigabyte per detik yang sangat cepat.
Beban kerja game juga telah berkembang. Game modern memuat lebih banyak data daripada game lama dan lebih pintar tentang cara mereka memuat data ini. Pengoptimalan pemuatan data ini diperlukan agar jumlah data yang lebih besar ini dapat dimasukkan ke dalam memori bersama / memori yang dapat diakses GPU. Alih-alih memuat potongan besar pada satu waktu dengan sangat sedikit permintaan IO, game sekarang memecah aset seperti tekstur menjadi bagian-bagian yang lebih kecil, hanya memuat bagian yang diperlukan untuk adegan saat ini yang sedang dirender. Pendekatan ini jauh lebih hemat memori dan dapat memberikan tampilan yang lebih baik, meskipun itu menghasilkan lebih banyak permintaan IO.
Sayangnya, API penyimpanan saat ini tidak dioptimalkan untuk permintaan IO dalam jumlah tinggi ini, mencegahnya meningkatkan ke bandwidth NVMe yang lebih tinggi ini yang menciptakan kemacetan yang membatasi apa yang dapat dilakukan game. Bahkan dengan perangkat keras PC super cepat dan drive NVMe, game yang menggunakan API yang ada tidak akan dapat sepenuhnya memenuhi pipeline IO sehingga meninggalkan bandwidth yang berharga di atas meja.
Di situlah DirectStorage untuk PC berperan. API ini merupakan respons terhadap penyimpanan yang berkembang dan lanskap IO dalam game PC. DirectStorage akan didukung pada sistem tertentu dengan drive NVMe dan berfungsi untuk membawa pengalaman bermain game Anda ke level berikutnya. Jika sistem Anda tidak mendukung DirectStorage, jangan khawatir; permainan akan terus bekerja sebaik biasanya.
Apa sebenarnya yang akan dilakukan DirectStorage untuk pengalaman bermain game PC saya dan bagaimana caranya?
Ada dua area utama yang akan ditingkatkan oleh API baru ini: mengurangi waktu muat yang sangat lama di masa lalu dan memungkinkan game menjadi lebih detail dan ekspansif dari sebelumnya.
Meskipun tampak berbeda, kedua manfaat tersebut berasal dari kemajuan sistem IO yang sama dengan yang dibawa DirectStorage. Baik itu tekstur pakaian karakter Anda, atau detail pegunungan di kejauhan, keduanya pada dasarnya melibatkan pemuatan data dari perangkat penyimpanan yang pada akhirnya harus sampai ke GPU. Yang pertama terjadi begitu saja saat berada di layar pemuatan sedangkan yang terakhir terjadi saat Anda berjalan melalui game dunia terbuka yang memuat pemandangan di kejauhan yang terlihat secara real time sambil membuang hal-hal yang tidak terlihat.
Dalam kedua kasus tersebut, game gen sebelumnya memiliki anggaran streaming aset sekitar 50MB / dtk yang bahkan pada ukuran blok 64k yang lebih kecil (mis. Satu ubin tekstur) hanya berjumlah ratusan permintaan IO per detik. Dengan drive NVMe berkemampuan multi-gigabyte per detik, untuk memanfaatkan bandwidth penuh, ini dengan cepat meledak menjadi puluhan ribu permintaan IO per detik. Mengambil drive berkemampuan 2.4GB / s Seri X dan ukuran blok 64k yang sama sebagai contoh, itu berarti> 35.000 IO permintaan per detik untuk menjenuhkannya.
API yang ada memerlukan aplikasi untuk mengelola dan menangani setiap permintaan ini satu per satu terlebih dahulu dengan mengirimkan permintaan, menunggunya selesai, dan kemudian menangani penyelesaiannya. Overhead setiap permintaan tidak terlalu besar dan bukan merupakan titik tersedak untuk game lama yang berjalan pada hard drive yang lebih lambat, tetapi berlipat ganda puluhan ribu kali per detik, overhead IO dapat dengan cepat menjadi terlalu mahal sehingga mencegah game untuk dapat memanfaatkan dari peningkatan bandwidth drive NVMe.
Selain itu, banyak dari aset ini yang dikompresi. Untuk digunakan oleh CPU atau GPU, keduanya harus didekompresi terlebih dahulu. Sebuah game dapat menarik sebanyak mungkin data dari disk, tetapi Anda masih memerlukan cara yang efisien untuk mendekompresi dan membawanya ke GPU untuk dirender. Dengan menggunakan DirectStorage, game Anda dapat memanfaatkan teknologi dekompresi terbaik saat ini dan yang akan datang.
Di dunia di mana game tahu bahwa ia perlu memuat dan mendekompresi ribuan blok untuk frame berikutnya, model satu per satu mengakibatkan hilangnya efisiensi di berbagai titik dalam perjalanan blok data. DirectStorage API dirancang sedemikian rupa sehingga memperhitungkan semua ini dan memaksimalkan kinerja di seluruh pipeline dari drive NVMe hingga GPU.
Hal ini dilakukan dalam beberapa cara: dengan mengurangi overhead NVMe per permintaan, mengaktifkan permintaan IO paralel banyak-pada-waktu yang dapat secara efisien diumpankan ke GPU, dan memberi game kontrol butir yang lebih baik ketika mereka mendapat pemberitahuan tentang permintaan IO penyelesaian daripada harus bereaksi terhadap setiap penyelesaian IO kecil.
Dengan cara ini, pengembang diberikan cara yang sangat efisien untuk mengirimkan / menangani banyak pesanan yang besarnya lebih banyak permintaan IO daripada sebelumnya pada akhirnya meminimalkan waktu Anda menunggu untuk masuk ke dalam game, dan memberi Anda dunia virtual yang lebih besar dan lebih detail yang dimuat dengan cepat. karena karakter game Anda dapat melewatinya.
Mengapa NVMe?
Perangkat NVMe tidak hanya perangkat berbasis SSD dengan bandwidth sangat tinggi, tetapi juga memiliki pipa akses data perangkat keras yang disebut antrean NVMe yang sangat sesuai untuk beban kerja game. Untuk mengeluarkan data dari drive, OS mengirimkan permintaan ke drive dan data dikirim ke aplikasi melalui antrian ini. Perangkat NVMe dapat memiliki banyak antrian dan setiap antrian dapat berisi banyak permintaan dalam satu waktu. Ini sangat cocok dengan sifat paralel dan batch dari beban kerja game modern. Model pemrograman DirectStorage pada dasarnya memberi pengembang kendali langsung atas perangkat keras yang sangat dioptimalkan itu.
Selain itu, API penyimpanan yang ada juga menimbulkan banyak 'langkah tambahan' antara aplikasi yang membuat permintaan IO dan permintaan yang dipenuhi oleh perangkat penyimpanan, yang mengakibatkan overhead permintaan yang tidak perlu. Langkah ekstra ini dapat berupa hal-hal seperti transformasi data yang diperlukan selama bagian tertentu dari operasi IO normal. Namun, langkah-langkah ini tidak diperlukan untuk setiap permintaan IO di setiap drive NVMe di setiap mesin game. Dengan drive NVMe yang didukung dan mesin game yang dikonfigurasi dengan benar, DirectStorage akan dapat mendeteksi di depan bahwa langkah-langkah tambahan ini tidak diperlukan dan melewati semua pemeriksaan / operasi yang diperlukan sehingga setiap permintaan IO lebih murah untuk dipenuhi.
Karena alasan ini, NVMe adalah teknologi penyimpanan pilihan untuk DirectStorage dan IO gaming generasi berikutnya yang berkinerja tinggi.
Kapan kita bisa mengharapkan lebih banyak detail?
Untuk setiap fitur keluarga DirectX, Microsoft menyatukan para pemain industri game PC terbaik untuk menstandarkan fitur game baru, membuatnya tersedia untuk developer game, dan akhirnya memasukkannya ke mesin game Anda.
Proses ini telah dimulai untuk DirectStorage dan Micrsoft sedang bekerja dengan mitra industri microsoft sekarang untuk menyelesaikan perancangan / pembuatan API dan komponen pendukungnya. Microsoft menargetkan mendapatkan pratinjau pengembangan DirectStorage ke tangan pengembang game tahun depan.