Mengungkap dukungan DirectX 12 di Windows 10: Apa yang dilakukan dan tidak diberikan oleh AMD, Intel, dan Nvidia

Logo DirectX 12

Sekarang Windows 10 akhirnya dikirim, pertanyaan tentang kompatibilitas DirectX akan berpindah dari poin peluru pemasaran ke masalah nyata bagi pengguna. Selama lebih dari setahun, AMD dan Nvidia telah mengiklankan bahwa berbagai keluarga GPU lama akan mendukung DirectX 12 saat peluncuran. Namun baru-baru ini, ada beberapa kebingungan tentang tingkat dukungan apa yang akan ditawarkan Intel, AMD, dan Nvidia untuk API baru dan produk mana yang akan menjalankan game mendatang yang mengandalkannya. Kebingungan saat ini tampaknya disebabkan oleh komentar dari Robert Hallock dari AMD, yang mengakui bahwa berbagai GPU kelas AMD GCN mendukung berbagai tingkat fitur DirectX 12. Hal ini telah dipelintir menjadi tuduhan bahwa AMD tidak mendukung DirectX 12 'penuh' Pada kenyataannya, Intel, Nvidia, dan AMD semuanya mendukung DirectX 12 pada berbagai tingkat fitur, dan tidak ada GPU di pasaran saat ini yang mendukung setiap kapabilitas DirectX 12 opsional.

Tingkat fitur DirectX dan pembaruan titik bukanlah hal yang sama

Hal pertama yang harus dipahami adalah bahwa tingkat fitur DirectX tidak sama dengan pembaruan titik DirectX. Pembaruan titik (DirectX 10.1, DirectX 11.1 / 11.2) adalah satu set kemampuan standar tambahan yang memungkinkan pengembang untuk melakukan tugas tertentu dengan lebih efisien atau menawarkan kemampuan tertentu. DirectX 10.1, misalnya, menerapkan standar baru untuk kualitas visual, instruksi shader baru, dan dukungan untuk susunan peta kubus. Itu bukanlah pembaruan yang cukup signifikan untuk mendefinisikan versi DirectX yang benar-benar baru di sekitarnya, tetapi ini adalah langkah yang cukup besar untuk menjamin ekstensinya sendiri.

Sebaliknya, tingkat fitur DirectX menentukan tingkat dukungan yang diberikan GPU dengan tetap mendukung spesifikasi yang mendasarinya. Kemampuan ini pertama kali diperkenalkan di DirectX 11. Microsoft mendefinisikan tingkat fitursebagai “sekumpulan fungsionalitas GPU yang terdefinisi dengan baik. Misalnya, tingkat fitur 9_1 mengimplementasikan fungsionalitas yang diimplementasikan di Microsoft Direct3D 9, yang memperlihatkan kapabilitas model shader ps_2_x dan vs_2_x, sedangkan tingkat fitur 11_0 mengimplementasikan fungsionalitas yang diimplementasikan di Direct3D 11. ”



Bagan di bawah ini adalah contoh parsial dari level fitur DirectX 11, hanya untuk mengilustrasikan poinnya:

DX11-FeatureLevels

Tujuan dari fungsi tingkat fitur adalah untuk memungkinkan pengembang menargetkan satu API daripada mengembangkan basis kode terpisah secara paralel untuk memastikan bahwa game dapat berjalan dengan lancar di beberapa generasi perangkat keras GPU daripada menulis kode terpisah untuk DX12, DX11, DX10, dan seterusnya. GPU DirectX 11 dengan fitur level 9_3 tidak dapat secara ajaib menjalankan efek DirectX 11, tetapi itu terjadi bisa menjalankan game dalam mode DirectX 9 tanpa pengembang perlu menulis implementasi mesin yang sepenuhnya terpisah untuk mengizinkannya. Begitulah cara game seperti Civilization V dapat dijalankan dalam mode DX11 atau DX9 dari basis kode yang sama.

AMD, Intel, dan Nvidia: Siapa yang mendukung apa?

Salah satu masalah dalam mengidentifikasi GPU mana yang mendukung fitur mana adalah kebingungan antara dukungan API DirectX dan dukungan tingkat fitur. Halaman dukungan dari Nvidia ini, misalnya, merinci bagaimana GPU Fermi dan Kepler dapat mendukung DirectX 11.1 pada tingkat fitur 11_0. Alasan Kepler dan Fermi tidak mendukung DirectX 11.1 pada tingkat fitur 11_1 adalah karena dua dari kemampuan yang diperlukan untuk 11_1 tidak tersedia di GPU. Nvidia berusaha keras untuk menunjukkan bahwa pembaruan 11.1 DirectX sebenarnya menambahkan dukungan untuk beberapa kemampuan yang diperkenalkan Fermi pada tahun 2010.

Detail Microsoft slide berikut persis dengan tingkat fitur DirectX 12 yang didukung oleh perulangan perangkat keras:

DX12FeatureLEvels

Tidak jelas mengapa Microsoft mencantumkan Kepler sebagai pendukung DirectX 11_1 sementara Nvidia menunjukkannya sebagai terbatas pada DirectX 11_0 di bawah, tetapi bagaimanapun, intinya tetap ada: Dukungan DirectX 12 memiliki nuansa dan bervariasi di antara berbagai keluarga kartu dari setiap produsen. Chip AMD GCN 1.0 termasuk Cape Verde, Pitcairn, dan Tahiti dan mendukung fitur level 11_1, sedangkan Bonaire, Hawaii, Tonga, (mungkin Oland) dan Fiji semuanya akan mendukung fitur level 12_0. Berbagai keluarga 4xx, 5xx, 6xx, dan 7xx Nvidia semuanya akan mendukung DirectX 12 pada tingkat fitur 11_0 atau 11_1, dengan GTX 750 Ti menawarkan dukungan FL 12_0. Perhatikan bahwa Oland adalah jenis chip hybrid yang aneh - mungkin memiliki dukungan fitur DirectX 12_0, tetapi tidak memiliki fitur seperti TrueAudio dan mungkin dukungan XDMA.

Masalah ini semakin dibingungkan oleh klaim bahwa Maxwell adalah satu-satunya GPU di pasar yang mendukung DirectX 12 'penuh'. Meskipun benar bahwa Maxwell adalah satu-satunya GPU yang mendukung DirectX 12_1, AMD adalah satu-satunya perusahaan yang menawarkan penuh Pengikatan sumber daya tingkat 3 dan shader asynchronous untuk grafik dan komputasi simultan. Itu tidak berarti AMD atau Nvidia berbohong - ini berarti bahwa fitur dan kapabilitas tertentu dari berbagai kartu ditangkap secara tidak sempurna oleh tingkat fitur dan menyebut satu GPU atau 'penuh' DX12 lainnya akan melewatkan perbedaan ini. Intel, misalnya, menawarkan ROV pada tingkat fitur 11_1 - sesuatu yang tidak dapat ditandingi oleh AMD maupun Nvidia.

Mengapa DirectX 12 terlihat seperti itu

Satu perhatian umum dari para pemain game adalah jika kartu mereka hanya mendukung DirectX 12 11_1 atau 12_0, mereka akan kehilangan apa yang ditawarkan DirectX 12. Penting untuk diingat bahwa kemampuan multi-threading dan multi-GPU dari DirectX 12 yang telah kami lihat pratinjau hingga saat ini (dan didemonstrasikan melalui Mantle) masih sepenuhnya tersedia untuk setiap tingkat fitur. Kepler dan GPU GCN yang lebih lama benar-benar akan mendapatkan keuntungan dari kemampuan baru yang diberikan DirectX 12. Dengan demikian, ada beberapa kemampuan khusus yang dimasukkan ke dalam DirectX 12_0 dan 12_1 yang tidak dapat diakses oleh gamer dengan kartu yang lebih lama - tetapi seperti yang ditunjukkan bagan di atas, ini bukan masalah khusus AMD, Nvidia, atau Intel. Tidak ada Intel IGP saat ini yang mendukung DirectX 12_0, sementara hanya perangkat keras Maxwell Nvidia yang mendukung 12_0 atau 12_1.

Slide terbaru dari peluncuran GTX 980 Ti ini menyiratkan bahwa Kepler dibatasi pada fitur level 11_0, bukan 11_1.

Slide terbaru dari peluncuran GTX 980 Ti ini menyiratkan bahwa Kepler dibatasi pada fitur level 11_0, bukan 11_1.

Untuk memahami mengapa Microsoft membangun DirectX 12 seperti itu, pertimbangkan alternatifnya. Sebelum DirectX 11, setiap versi DirectX baru dikaitkan dengan persyaratan perangkat keras baru. Dari waktu ke waktu, AMD atau Nvidia mungkin menerapkan fitur tertentu pada perangkat keras sebelum menjadi bagian dari standar DirectX di masa mendatang, tetapi kartu grafis diperbaiki ke API DirectX yang mereka dukung saat peluncuran. Tanpa fleksibilitas yang diberikan oleh level fitur, hanya gamer yang bisa manfaatkan DX12 adalah mereka yang membeli GPU GCN 1.1, 1.2, atau Maxwell. Semua orang, termasuk jutaan orang dengan kartu yang sedikit lebih tua, akan tertinggal dalam kedinginan.

Menambahkan tingkat fitur dan menerapkannya sebagai bagian dari DX12 berarti jutaan orang akan melihat manfaat yang signifikan dari penerapan API baru di sini dan saat ini. Tidak, GPU lama mungkin tidak mendukung setiap fitur DX12, tetapi tidak ada yang akhirnya harus memilih antara game yang tampak hebat di DX11 atau versi DX12 setengah-setengah karena masalah implementasi kartu grafis. Saat AMD, Nvidia, dan Intel berbicara tentang mendukung DirectX 12 pada perangkat keras yang lebih lama, mereka berbicara tentang fitur yang paling penting - API dengan overhead yang lebih rendah, pemanfaatan CPU yang lebih baik, dan fungsionalitas multi-GPU. Tingkat fitur sebenarnya yang mendefinisikan 12_1 sebagai berbeda dari 11_0 menarik dan berguna dalam skenario tertentu, tetapi itu bukanlah kemampuan yang benar-benar akan membentuk bagaimana pemain game mengalami permainan dengan API.

Sama seperti hanya ada sedikit game yang membutuhkan DirectX 11.2 atau 11.1 (begitu saja, saya tidak dapat memikirkannya), akan ada sangat sedikit judul DirectX 12 yang mengamanatkan DirectX 12 FL 12_0 atau 12_1. Saya tidak mengatakan game seperti itu tidak akan pernah terjadi, tetapi itu akan memakan waktu bertahun-tahun dari sekarang, lama setelah GPU saat ini digantikan oleh perangkat keras modern. Jika Anda memiliki kartu GCN 1.0, Fermi, atau Kepler, Anda akan mendapatkan fitur DirectX 12 yang paling penting. Itulah mengapa Microsoft membuat tingkat fitur yang dapat digunakan oleh GPU lama - jika kartu Fermi, Kepler, dan GCN 1.0 yang lebih lama tidak dapat memanfaatkan keunggulan inti DirectX 12, Microsoft tidak akan memenuhi syarat mereka untuk menggunakannya. API ini sengaja dirancang untuk memungkinkan kompatibilitas ke belakang untuk memastikan pengembang bersedia menargetkannya.

Copyright © Seluruh Hak Cipta | 2007es.com