Apakah DirectX 12 lebih baik dari DirectX 11? Begini cara mereka membandingkan? DirectX 12 dirilis bersamaan dengan Windows 10 pada tahun 2015. Dengan dirilisnya, Microsoft mengantarkan era baru bagi para gamer dan pengembang game.
Mampu mengurangi overhead CPU sekaligus meningkatkan kinerja GPU, DirectX 12 dengan cepat menjadi terkenal. Namun apakah meningkatkan kinerja semudah beralih dari DirectX 11 ke DirectX 12? Mari kita cari tahu dengan melihat perbedaan di antara keduanya.
Apa Itu DirectX Microsoft?
Seperti yang dijelaskan dalam ikhtisar kami tentang Microsoft DirectX, DirectX adalah kumpulan antarmuka pemrograman aplikasi (API) yang digunakan untuk menangani tugas-tugas yang berkaitan dengan multimedia. Ini termasuk pemrograman game pada platform berbasis Microsoft seperti Windows dan Xbox. Untuk memberikan konteks, mari kita bahas secara singkat tentang API.
API memungkinkan dua atau lebih program komputer untuk berkomunikasi satu sama lain, yang kita diskusikan dalam ikhtisar API. Anggap saja seperti telepon. Jika ibumu mengirimimu pesan berisi daftar belanjaan, ponselmu akan menerima data tersebut dan menampilkannya untukmu. Itu pada dasarnya adalah API.
Apa Perbedaan Antara DirectX 11 dan DirectX 12
Lalu apa perbedaan DirectX 11 dan DirectX 12? Sederhananya DirectX 12 adalah versi terbaru dari DirectX. Salah satu perbedaan paling mencolok adalah cara mereka berinteraksi dengan perangkat keras.
ebanyakan game yang dikembangkan dengan DirectX 11 hanya menggunakan antara dua dan empat core CPU. Salah satu core ini biasanya memberi tahu GPU apa yang harus dilakukan.
Game tersebut kemudian menggunakan core yang tersisa untuk menangani berbagai pengaturan intensif CPU seperti partikel game atau jarak imbang. Di sisi lain, DirectX 12 menyebarkan beban kerja CPU ke beberapa core dan memungkinkan setiap core berkomunikasi dengan GPU secara bersamaan.
DirectX 12 juga dilengkapi dengan beberapa fitur menarik. Ini termasuk komputasi asinkron dan pipeline state objects (PSO). Komputasi asinkron meningkatkan pemanfaatan GPU dengan memungkinkan beberapa beban kerja bekerja secara paralel. Ini pada dasarnya membuka potensi penuh GPU kalian.
Selain rendering grafis, GPU menangani berbagai tugas lainnya seperti menjalankan algoritme pembelajaran mesin. Dengan DirectX 11, GPU hanya dapat melakukan salah satu tugas ini dalam satu waktu dan dalam urutan tertentu. Performa akan terpukul jika hal ini terjadi karena sumber daya GPU tidak digunakan secara efisien.
Anggap saja seperti seorang pelayan di sebuah restoran. Saat pelayan menerima pesanan, mereka menanyakan apa yang ingin diminum terlebih dahulu. Setelah menerima minuman, mereka menanyakan apa hidangan utamanya. Pesanan diambil dalam beberapa langkah. Pelayan tidak akan menanyakan makanan penutup apa yang diinginkan sebelum menikmati hidangan utama. Meskipun cara ini efektif, hal ini tidak seefisien yang seharusnya.
Dalam komputasi, sumber daya GPU yang berbeda akan menangani setiap tugas pelayan. Hingga menerima minuman, sumber daya GPU yang diperlukan untuk memesan hidangan utama akan menganggur. Dengan komputasi asinkron DirectX 12, pelayan akan dapat menerima pesanan sekaligus, seperti di jaringan makanan cepat saji. Ini memaksimalkan penggunaan GPU dan meningkatkan kinerja game.
DirectX 12 juga memperkenalkan pipeline state objects (PSO). Dengan DirectX 11, saat geometri game dikirimkan ke GPU untuk dirender, berbagai pengaturan perangkat keras bertanggung jawab untuk menafsirkan dan merender data ini. Ini disebut jalur grafis dan aliran input dan output data yang terjadi saat GPU merender frame. Namun jalur grafis DirectX 11 tidak sempurna.
Pipeline ini berisi kumpulan status berbeda, termasuk status rasterisasi, status campuran, dan status stensil kedalaman, serta komponen lainnya. Di DirectX 11 ada ketergantungan antara negara-negara yang berbeda. Akibatnya, suatu keadaan tidak dapat diselesaikan sampai keadaan sebelumnya ditentukan. Hal ini mengurangi penggunaan GPU dan meningkatkan overhead CPU dengan mengorbankan kinerja.
Untuk menyiasati hal ini, DirectX 12 memperkenalkan PSO, objek yang menggambarkan keadaan keseluruhan pipeline grafis. PSO seperti botol yang berisi berbagai keadaan dan komponen yang dibutuhkan untuk membuat sebuah gambar. Hal ini memungkinkan GPU untuk melakukan pra-pemrosesan setiap status dependen bukan terus menghitung ulang status berdasarkan pipeline grafis saat ini.
Ini secara signifikan mengurangi overhead CPU yang ditemukan di DirectX 11 dan meningkatkan kinerja. Lalu seperti apa perbedaannya? Menurut Microsoft, DirectX 12 mengurangi overhead CPU hingga 50 persen dan meningkatkan kinerja GPU sebanyak 20 persen. Meskipun terdapat beberapa peningkatan substansial, ini tidak berarti akan melihat hasil yang sama.
Alasan Beralih Dari DirectX 11 ke DirectX 12 Tidak Mudah
DirectX 11 pertama kali dirilis untuk Windows Vista pada tanggal 27 Oktober 2009. Jadi dengan diikutinya DirectX 12 pada tahun 2015, ada jeda enam tahun antara DirectX 11 dan DirectX 12. Selama waktu ini, ribuan game telah dikembangkan menggunakan DirectX 11. Sayangnya, berpindah dari DirectX 11 ke DirectX 12 bukanlah hal yang mudah.
DirectX 11 adalah apa yang disebut API tingkat tinggi. Sederhananya, API tingkat tinggi lebih mudah digunakan oleh pengembang. Hasilnya adalah game yang stabil, halus, dan dapat dimainkan. Di sisi lain, DirectX 12 adalah API tingkat rendah dan berbeda dari DirectX 11. Meskipun memungkinkan pengembang untuk menyempurnakan pengoptimalan pada tingkat yang terperinci, hal ini juga memerlukan pengetahuan luas untuk menggunakannya. Meskipun demikian, game yang dikembangkan di DirectX 12 dapat memiliki performa yang lebih buruk tergantung pada pengetahuan pengembang tentang API.
Beberapa perbaikan terjadi pada DirectX 12, namun hal ini bergantung pada seberapa baik pengembang dapat mengimplementasikannya. Karena alasan ini, banyak pengembang memilih untuk tetap menggunakan API tingkat tinggi seperti DirectX 11.
Pilih Mana DX 11 Atau DX 12
Jawabannya tergantung pada beberapa hal, seperti game apa yang ingin dijalankan. Misalnya Guild Wars 2 berjalan pada DirectX 11. Meskipun OS dan perangkat keras dapat menggunakan DirectX 12, kalian tidak akan memiliki opsi untuk memilih DirectX 11 di Guild Wars 2 karena game tersebut tidak mendukungnya. Ini sepenuhnya merupakan keputusan pengembang, ArenaNet.
Percaya atau tidak, butuh sembilan tahun bagi ArenaNet untuk beralih dari DirectX 9 ke DirectX 11. Namun beberapa game mendukung DirectX 11 dan DirectX 12 termasuk Fortnite, Battlefield 5, Shadow of Tomb Raider, dan banyak lagi. Pengguna dapat beralih antara DirectX 11 dan DirectX 12 di pengaturan game.
Sekarang, fakta bahwa beberapa game mendukung DirectX 11 dan 12 mungkin membuat bertanya-tanya tentang performa dalam game. Apakah memilih DX 11 atau DX 12 memberikan performa dalam game yang lebih baik? Video berikut mengilustrasikan perbedaan antara DirectX 11 dan DirectX 12 dalam berbagai game, menampilkan spesifikasi penting seperti rata-rata frame per detik, penggunaan CPU, penggunaan GPU, dan banyak lagi, menggunakan AMD Ryzen 3600, Nvidia GeForce RTX 3060 Ti, dan RAM-nya 16GB DDR4.
Hasilnya mengejutkan dalam banyak hal, dengan sedikit perbedaan visual antara DX 11 dan DX 12, meskipun ada perbedaan beberapa tahun antara peluncurannya. Kalian mungkin juga telah memperhatikan perbedaan beban GPU dan CPU antara kedua versi DirectX, dengan versi DX 12 dari setiap game biasanya memerlukan sumber daya yang lebih sedikit dibandingkan DX 11 yang lebih lama.
Selain dukungan dalam game, memilih antara DirectX 11 dan DirectX 12 juga akan bergantung pada perangkat keras. Hampir semua GPU modern akan mendukung DirectX 12, namun hal yang sama tidak berlaku untuk GPU lama seperti Radeon HD 4870.
Dirilis pada tahun 2008, GPU ini hanya mendukung hingga DirectX 10. Artinya, GPU ini tidak mampu menjalankan GPU paling modern yang dijalankan menggunakan DirectX 11 dan DirectX 12.
Apakah DirectX 12 Pilihan Tepat
Secara keseluruhan, peralihan dari DirectX 11 ke DirectX 12 tidaklah sesulit kedengarannya. Itu tergantung pada berbagai faktor seperti perangkat keras, perangkat lunak, sistem operasi, dan apakah suatu game mendukung keduanya. Semua ini perlu dipertimbangkan sebelum mengambil keputusan dan kemungkinan besar hal ini juga berlaku untuk DirectX generasi mendatang.