August 2, 2015

Ini Manfaat Graphics API DirectX 12 pada Game di Windows 10

Penulis: Iwan Ramos Siallagan
Ini Manfaat Graphics API DirectX 12 pada Game di Windows 10 

MOBITEKNO – Windows 10 telah resmi dirilis. Salah satu feature baru yang cukup ditunggu-tunggu para developer dan gamer dari Windows 10 adalah graphics API (Application Programming Interfaces) terbaru yaitu DirectX 12.

Dua features penting DirectX 12 yang paling banyak dibicarakan produsen graphics chip (AMD dan NVDIA) adalah Async Shaders dan Multi-Threaded Command Buffer Recording.

Sederhananya, kedua features ini punya tugas untuk mengekstrak semua potensi kinerja CPU dan GPU dalam menjalankan workload game yang tidak sepenuhnya bisa dilakukan oleh DirectX 11 atau pendahulunya.

Agar tidak rancu, DirectX 12 yang kita bahas di sini lebih dimaksudkan sebagai Direct3D yaitu 3D graphics API sebagai bagian dari API DirectX. Namun, agar lebih simpel disebut saja sebagai DirectX.

Sebagai penyegaran, di era sebelum DirectX 10, graphics API yang berfungsi menangani berbagai task graphics game 3D atau multimedia di Windows untuk dijalankan oleh CPU dan GPU (graphics card) terbilang masih sederhana.

Saat Windows XP masih menggunakan DirectX 9, CPU yang umumnya masih single-core akan ‘berbicara’ langsung dengan GPU pada chip atau graphics card melalui suatu main-thread dalam menjalankan task graphics.

Graphics API yang lebih efisien mulai dirasakan sejak Microsoft merilis DirectX 10. Di era ini, beberapa core pada multicore CPU bisa sekaligus mengirimkan beberapa job/task ke GPU.

Namun, mekanisme pipeline ke GPU masih tetap dilakukan satu per satu atau serial sehingga keuntungan multicore pada CPU pun menjadi kurang maksimal karena satu core hanya bisa ‘berbica’ dengan satu core GPU.

Kini, di era multicore di CPU dan ribuan core di GPU, peranan graphics API menjadi lebih krusial mengingat posisinya sebagai perantara yang bisa mengekstrak seluruh kemampuan komponen hardware (CPU dan GPU) di PC/notebook dalam menjalankan graphics task.

Para developer game sudah cukup lama menyadari keterbatasan DirectX 11.x (graphics API terakhir sebelum DirectX 12). Beberapa developer ada yang mengambil ‘jalan pintas’ dengan membuat proprietary API yang hanya kompatibel dengan game dan GPU tertentu saja.

Ini pula yang menyebabkan AMD turun tangan untuk membuat low-level rendering API-nya sendiri, yaitu Mantle agar game 3D bisa berjalan lebih mulus di GPU Radeon dan APU-nya.

Kehadiran API Mantle disambut positif para developer game yang menyebutnya cukup berhasil dalam banyak hal, seperti menurunkan overhead dalam validasi API, lebih efektif melakukan proses scalling multicore CPU, mempercepat rutin draw call (menampilkan objek di layar) hingga kontrol yang lebih baik pada pipeline graphics.

Respon positif para developer terhadap Mantle ditunjukkan dengan dukungan berbagai game engine populer, seperti Crytek CryEngine, Frosbyte 3, Oxide Games Nitrous, hingga Unreal Engine 3.

Namun, Mantle bukanlah graphics API standar di Windows. Faktanya, hampir semua developer game di Windows selalu mengacu pada API DirectX 10.x atau 11.x meski sudah kurang optimal memanfaatkan multicore CPU dan GPU.

Alasan pihak developer sederhana dan masuk akal, yaitu agar game yang mereka buat bisa kompatibel atau berjalan pada berbagai jenis hardware dan versi Windows. Semakin banyak yang bisa menjalankan game tersebut semakin tinggi pula peluangnya untuk terjual.

Terlepas dari urgensi para developer akan suatu API yang lebih baik atau kehadiran low-level API AMD Mantle, Microsoft pun akhirnya menghadirkan DirectX 12 yang terintegrasi langsung di Windows 10 yang baru saja dirilis.

Microsoft menawarkan DirectX 12 untuk menjadi acuan platform API baru bagi para developer game. Beberapa game DirectX 12 rilis terbaru diperkirakan aka hadir dalam beberapa minggu ini.

Developer game harus merubah paradigmanya dalam merancang game berbasis DirectX 12 terutama yang berkaitan dengan graphics workload.
Metode baru DirectX 12, seperti juga API Mantle, akan meningkatkan potensi performa hardware sehingga membuka ruang bagi terciptanya game-game yang lebih realistis (visual dan AI) di mata gamer.

Pada umumnya developer game akan mengadopsi DirectX 12 untuk game engine mereka secara bertahap. Cara ini dianggap lebih aman daripada harus merombak total engine untuk di-porting ke DirectX 12. Menurut Microsoft, adopsi DirectX 12 secara bertahap ini tetap membawa dampak positif.

Hitung-hitungan Microsoft, beban CPU menjalankan game akan turun sekitar 50 persen dan performa GPU menjalankan game meningkat hingga 20 persen. Pengertian ‘hingga’ disini menunjukkan beragamnya game dalam memanfaatkan berbagai features DirectX 12. Semakin banyak feature yang diimplementasikan, performa game pun akan semakin optimal.

Ringkasnya, menurut Microsoft ada beberapa keuntungan bagi para developer dalam membuat game dan pengguna PC/notebook/tablet berbasis Windows 10 saat menjalankan game berbasis DirectX 12:

  • Para developer cukup menggunakan satu graphics API untuk engine game-nya agar bisa dijalankan di PC dan Xbox One.
  • Menurunkan overhead CPU hingga 50 persen di samping dapat membagi beban (worload) ke semua core CPU (paralelismenya meningkat).
  • Meningkatkan performa GPU hingga 20 persen (tergantung jenis game dalam memanfaatkan berbagai feature DirectX 12).
  • Developer game bisa memanfaatkan berbagai keunggulan dari DirectX 12 dan mengimplementasikannya satu demi satu hingga paham semua library API-nya.
  • Workoad yang lebih cepat dan efisien saat diproses CPU dan GPU secara tidak langsung bisa meningktakan daya tahan baterai notebook.

 

Tags: , , , , , , , ,


COMMENTS