Tingkat fitur Direct3D
Untuk menangani keragaman kartu video di komputer baru dan yang sudah ada, Microsoft Direct3D 11 memperkenalkan konsep tingkat fitur. Topik ini membahas tingkat fitur Direct3D.
Setiap kartu video mengimplementasikan tingkat fungsionalitas Microsoft DirectX (DX) tertentu tergantung pada unit pemrosesan grafis (GPU) yang diinstal. Dalam versi Microsoft Direct3D sebelumnya, Anda dapat mengetahui versi Direct3D yang diterapkan kartu video, lalu memprogram aplikasi Anda.
Dengan Direct3D 11, paradigma baru diperkenalkan yang disebut tingkat fitur. Tingkat fitur adalah serangkaian fungsionalitas GPU yang terdefinisi dengan baik. Misalnya, tingkat fitur 9_1 mengimplementasikan fungsionalitas yang diterapkan di Microsoft Direct3D 9, yang memaparkan kemampuan model shader ps_2_x dan vs_2_x, sementara tingkat fitur 11_0 mengimplementasikan fungsionalitas yang diterapkan di Direct3D 11.
Sekarang saat membuat perangkat, Anda dapat mencoba membuat perangkat untuk tingkat fitur yang ingin Anda minta. Jika pembuatan perangkat berfungsi, tingkat fitur tersebut ada, jika tidak, perangkat keras tidak mendukung tingkat fitur tersebut. Anda dapat mencoba membuat ulang perangkat pada tingkat fitur yang lebih rendah atau Anda dapat memilih untuk keluar dari aplikasi. Untuk informasi selengkapnya tentang membuat perangkat, lihat fungsi D3D11CreateDevice .
Dengan menggunakan tingkat fitur, Anda dapat mengembangkan aplikasi untuk Direct3D 9, Microsoft Direct3D 10, atau Direct3D 11, lalu menjalankannya pada 9, 10 atau 11 perangkat keras (dengan beberapa pengecualian; misalnya, 11 fitur baru tidak akan berjalan pada kartu 9 yang ada). Berikut adalah beberapa properti dasar tingkat fitur lainnya:
- GPU yang memungkinkan perangkat dibuat memenuhi atau melebihi fungsionalitas tingkat fitur tersebut.
- Tingkat fitur selalu menyertakan fungsionalitas tingkat fitur sebelumnya atau yang lebih rendah.
- Tingkat fitur tidak menyiratkan performa, hanya fungsionalitas. Performa tergantung pada implementasi perangkat keras.
- Pilih tingkat fitur saat Anda membuat perangkat Direct3D 11.
Untuk informasi tentang batasan pembuatan perangkat jenis nonhardware pada tingkat fitur tertentu, lihat Batasan Membuat WARP dan Perangkat Referensi.
Untuk membantu Anda memutuskan tingkat fitur apa yang akan didesain, bandingkan fitur untuk setiap tingkat fitur.
Bagian Referensi 10Level9 mencantumkan perbedaan antara bagaimana berbagai metode ID3D11Device dan ID3D11DeviceContext bereaksi pada berbagai tingkat fitur 10Level9.
Format nomor versi
Ada tiga format untuk versi Direct3D, model shader, dan tingkat fitur.
- Versi Direct3D menggunakan titik; misalnya, Direct3D 12.0.
- Model shader menggunakan titik; misalnya, model shader 5.1.
- Tingkat fitur menggunakan garis bawah; misalnya, tingkat fitur 12_0.
Dukungan fitur Direct3D 12 (tingkat fitur 12_2 hingga 11_0)
Fitur berikut tersedia untuk tingkat fitur yang tercantum. Judul di seluruh baris atas adalah tingkat fitur Direct3D 12. Judul di kolom sebelah kiri adalah fitur. Lihat juga Catatan kaki untuk tabel.
Fitur \ Tingkat Fitur | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
---|---|---|---|---|---|
Model shader | 6.5 | 5.12 | 5.12 | 5.12 | 5.12 |
Model driver WDDM | 2.0 | 1.x | 1.x | 1.x | 1.x |
Raytracing | Tingkat 1.1 | Opsional | Opsional | Opsional | Opsional |
Laju bayangan variabel | Tingkat 2 | Opsional | Opsional | Opsional | Opsional |
Shader jala | Tingkat 1 | Opsional | Opsional | Opsional | Opsional |
Umpan balik sampler | Tingkat 0,9 | Opsional | Opsional | Opsional | Opsional |
Pengikatan sumber daya | Tingkat 3 | Tingkat 3 | Tingkat 3 | Tingkat 3 | Tingkat 1 |
Tanda tangan akar | 1.1 | 1 | 1 | 1 | 1 |
Pengujian batas kedalaman | Ya | Opsional | Opsional | Opsional | Opsional |
Tulis buffer segera | Direct, Compute, Bundle | Opsional | Opsional | Opsional | Opsional |
Bit alamat virtual GPU | 4010 | 4010 | 4010 | ||
Sumber daya berjenjang | Tingkat 3 | Tingkat 26 | Tingkat 26 | Opsional | Opsional |
Rasterisasi Konservatif | Tingkat 3 | Tingkat 16 | Opsional | Opsional | Tidak |
Tampilan Urutan Rasterizer | Ya | Ya | Opsional | Opsional | Tidak |
Filter Min/Maks | Ya | Ya | Ya | Opsional | Tidak |
Memetakan Buffer Default | T/A | Opsional | Opsional | Opsional | Opsional |
Nilai Referensi Stensil yang Ditentukan Shader | Opsional | Opsional | Opsional | Opsional | Tidak |
Tipe Beban Tampilan Akses Tidak Berurut | 18 format, lebih opsional | 18 format, lebih opsional | 18 format, lebih opsional | 3 format, lebih opsional | 3 format, lebih opsional |
Shader Geometri | Ya | Ya | Ya | Ya | Ya |
Streaming Keluar | Ya | Ya | Ya | Ya | Ya |
DirectCompute / Compute Shader | Ya | Ya | Ya | Ya | Ya |
Pemecah Lambung dan Domain | Ya | Ya | Ya | Ya | Ya |
Fitur \ Tingkat Fitur | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
Array Sumber Daya Tekstur | Ya | Ya | Ya | Ya | Ya |
Array Sumber Daya Cubemap | Ya | Ya | Ya | Ya | Ya |
Pemadatan BC4/BC5 | Ya | Ya | Ya | Ya | Ya |
Kompresi BC6H/BC7 | Ya | Ya | Ya | Ya | Ya |
Alfa-ke-cakupan | Ya | Ya | Ya | Ya | Ya |
Format yang Diperluas (BGRA, dan sebagainya) | Ya | Ya | Ya | Ya | Ya |
Format Warna Tinggi XR 10-bit | Ya | Ya | Ya | Ya | Ya |
Operasi Logika (Penggabungan Output) | Ya | Ya | Ya | Ya | Opsional1 |
Rasterisasi independen target | Ya | Ya | Ya | Ya | Tidak |
Beberapa target render (MRT) dengan ForcedSampleCount 1 | Ya | Ya | Ya | Ya | Opsional1 |
Slot UAV | Berjenjang9 | 64 | 64 | 64 | 8 |
UAV di setiap tahap | Ya | Ya | Ya | Ya | Tidak |
Fitur \ Tingkat Fitur | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
Jumlah sampel paksa maksimum untuk penyajian khusus UAV | 16 | 16 | 16 | 16 | 8 |
Offset buffer konstan dan pembaruan parsial | Ya | Ya | Ya | Ya | Opsional1 |
Format 16 bit per piksel (bpp) | Ya | Ya | Ya | Ya | Opsional1 |
Dimensi Tekstur Maks | 16384 | 16384 | 16384 | 16384 | 16384 |
Dimensi Max Cubemap | 16384 | 16384 | 16384 | 16384 | 16384 |
Tingkat Volume Maks | 2048 | 2048 | 2048 | 2048 | 2048 |
Pengulangan Tekstur Maks | 16384 | 16384 | 16384 | 16384 | 16384 |
Anisotropy Maks | 16 | 16 | 16 | 16 | 16 |
Jumlah Primitif Maks | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 |
Indeks Vertex Maks | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 |
Slot Input Maks | 32 | 32 | 32 | 32 | 32 |
Target Render Simultan | 8 | 8 | 8 | 8 | 8 |
Fitur \ Tingkat Fitur | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
Kueri Oklusi | Ya | Ya | Ya | Ya | Ya |
Pisahkan Alpha Blend | Ya | Ya | Ya | Ya | Ya |
Cermin Sekali | Ya | Ya | Ya | Ya | Ya |
Elemen Vertex yang Tumpang Tindih | Ya | Ya | Ya | Ya | Ya |
Masker Tulis Independen | Ya | Ya | Ya | Ya | Ya |
Instancing | Ya | Ya | Ya | Ya | Ya |
Nonpowers-of-2 secara kondisional3 | Tidak | Tidak | Tidak | Tidak | Tidak |
Nonpowers-of-2 tanpa syarat4 | Ya | Ya | Ya | Ya | Ya |
Selain itu, bendera berikut diatur:
Fitur \ Tingkat Fitur | 12_28 |
---|---|
WaveOps | TRUE |
OutputMergerLogicOp | TRUE |
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportWithoutGSEmulation | TRUE |
CopyQueueTimestampQueriesSupported | TRUE |
CastingFullyTypedFormatSupported | TRUE |
Int64ShaderOps | TRUE |
Dukungan fitur Direct3D 11 (tingkat fitur 12_1 hingga 9_1)
Fitur berikut tersedia untuk tingkat fitur yang tercantum. Judul di baris atas adalah tingkat fitur Direct3D 11. Judul di kolom sebelah kiri adalah fitur. Lihat juga Catatan kaki untuk tabel.
Fitur \ Tingkat Fitur | 12_10 | 12_00 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
Model shader | 5.12 | 5.12 | 5,02 | 5,02 | 4.x | 4,0 | 2.0 (4_0_level_9_3) [vs_2_a/ps_2_x]5 | 2.0 (4_0_level_9_1) | 2.0 (4_0_level_9_1) | ||
Model driver WDDM | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | ||
Sumber daya berjenjang | Tingkat26 | Tingkat26 | Opsional | Opsional | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Rasterisasi Konservatif | Tingkat 16 | Opsional | Opsional | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Tampilan Urutan Rasterizer | Ya | Opsional | Opsional | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Filter Min/Maks | Ya | Ya | Opsional | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Penyangga Default Peta | Opsional | Opsional | Opsional | Opsional | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Nilai Referensi Stensil Yang Ditentukan Shader | Opsional | Opsional | Opsional | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Beban Tampilan Akses Tidak Berurut Yang Dititik | 18 format, lebih opsional | 18 format, lebih opsional | 3 format, lebih opsional | 3 format, lebih opsional | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Shader Geometri | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | ||
Streaming Keluar | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | ||
DirectCompute / Compute Shader | Ya | Ya | Ya | Ya | Opsional | Opsional | T/A | T/A | T/A | ||
Pemecah Lambung dan Domain | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Fitur \ Tingkat Fitur | 12_10 | 12_00 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
Array Sumber Daya Tekstur | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | ||
Array Sumber Daya Cubemap | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | Tidak | ||
Pemadatan BC4/BC5 | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | ||
Kompresi BC6H/BC7 | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | Tidak | Tidak | ||
Alfa-ke-cakupan | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | ||
Format yang Diperluas (BGRA, dan sebagainya) | Ya | Ya | Ya | Ya | Opsional | Opsional | Ya | Ya | Ya | ||
Format Warna Tinggi XR 10-bit | Ya | Ya | Ya | Ya | Opsional | Opsional | T/A | T/A | T/A | ||
Operasi Logika (Penggabungan Output) | Ya | Ya | Ya | Opsional1 | Opsional1 | Opsional1 | Tidak | Tidak | Tidak | ||
Rasterisasi independen target | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak |
Beberapa target render (MRT) dengan ForcedSampleCount 1 | Ya | Opsional1 | Opsional1 | Opsional1 | Tidak | Tidak | Tidak | ||||
Slot UAV | 64 | 64 | 64 | 8 | 1 | 1 | T/A | T/A | T/A | ||
UAV di setiap tahap | Ya | Ya | Ya | Tidak | Tidak | Tidak | T/A | T/A | T/A | ||
Fitur \ Tingkat Fitur | 12_10 | 12_00 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
Jumlah sampel paksa maksimum untuk penyajian khusus UAV | 16 | 16 | 16 | 8 | T/A | T/A | T/A | T/A | T/A | ||
Offset buffer konstan dan pembaruan parsial | Ya | Ya | Ya | Opsional1 | Opsional1 | Opsional1 | Ya1 | Ya1 | Ya1 | ||
Format 16 bit per piksel (bpp) | Ya | Ya | Ya | Opsional1 | Opsional1 | Opsional1 | Opsional1 | Opsional1 | Opsional1 | ||
Dimensi Tekstur Maks | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 | 2048 | 2048 | ||
Dimensi Max Cubemap | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 | 512 | 512 | ||
Tingkat Volume Maks | 2048 | 2048 | 2048 | 2048 | 2048 | 2048 | 256 | 256 | 256 | ||
Pengulangan Tekstur Maks | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 8192 | 2048 | 128 | ||
Anisotropy Maks | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 2 | ||
Jumlah Primitif Maks | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 1048575 | 1048575 | 65535 | ||
Indeks Vertex Maks | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 1048575 | 1048575 | 65534 | ||
Slot Input Maks | 32 | 32 | 32 | 32 | 32 | 16 | 16 | 16 | 16 | ||
Target Render Simultan | 8 | 8 | 8 | 8 | 8 | 8 | 4 | 1 | 1 | ||
Fitur \ Tingkat Fitur | 12_28 | 12_10 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
Kueri Oklusi | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | ||
Pisahkan Alpha Blend | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | ||
Cermin Sekali | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | ||
Elemen Vertex yang Tumpang Tindih | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | ||
Masker Tulis Independen | Ya | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | ||
Instancing | Ya | Ya | Ya | Ya | Ya | Ya | Ya7 | Tidak | Tidak | ||
Nonpowers-of-2 secara kondisional3 | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | Ya | Ya | Ya | ||
Nonpowers-of-2 tanpa syarat4 | Ya | Ya | Ya | Ya | Ya | Ya | Tidak | Tidak | Tidak |
Catatan kaki untuk tabel
0 Memerlukan runtime Direct3D 11.3 atau Direct3D 12.
1 Memerlukan runtime Direct3D 11.1.
2 Model shader 5.0 ke atas dapat secara opsional mendukung shader presisi ganda, shader presisi ganda yang diperluas, instruksi shader SAD4 , dan shader presisi parsial. Untuk menentukan opsi model shader 5.0 yang tersedia untuk DirectX 11, panggil ID3D11Device::CheckFeatureSupport. Beberapa kompatibilitas tergantung pada perangkat keras apa yang Anda jalankan. Model shader 5.1 ke atas hanya didukung melalui DirectX 12 API, terlepas dari tingkat fitur yang sedang digunakan. DirectX 11 hanya mendukung hingga model shader 5.0. DIRECTX 12 API hanya turun ke tingkat fitur 11_0.
3 Pada tingkat fitur 9_1, 9_2 dan 9_3, perangkat tampilan mendukung penggunaan tekstur 2-D dengan dimensi yang bukan kekuatan dua dalam dua kondisi. Pertama, hanya satu tingkat peta MIP untuk setiap tekstur yang dapat dibuat, dan kedua, tidak ada mode wrap sampler untuk tekstur yang diizinkan (yaitu, anggota AddressU, AddressV, dan AddressWD3D11_SAMPLER_DESC tidak dapat diatur ke D3D11_TEXTURE_ADDRESS_WRAP).
4 Pada tingkat fitur 10_0, 10_1 dan 11_0, perangkat tampilan secara tanpa syarat mendukung penggunaan tekstur 2-D dengan dimensi yang bukan kekuatan dua.
5 Vertex Shader 2a dengan 256 instruksi, 32 register sementara, kontrol aliran statis kedalaman 4, kontrol aliran dinamis kedalaman 24, dan D3DVS20CAPS_PREDICATION. Pixel Shader 2x dengan instruksi 512, 32 register sementara, kontrol aliran statis kedalaman 4, kontrol aliran dinamis kedalaman 24, D3DPS20CAPS_ARBITRARYSWIZZLE, D3DPS20CAPS_GRADIENTINSTRUCTIONS, D3DPS20CAPS_PREDICATION, D3DPS20CAPS_NODEPENDENTREADLIMIT, dan D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT.
6 Tingkat yang lebih tinggi opsional.
7 Untuk Tingkat Fitur 9_3, satu-satunya metode penyajian yang didukung adalah Draw, DrawIndexed, dan DrawIndexInstanced. Juga untuk Tingkat Fitur 9_3, penyajian daftar titik hanya didukung untuk penyajian melalui Gambar.
8 Didukung oleh Windows 11.
9 Dalam DIRECT3D 12 API ada batasan jumlah deskriptor dalam tumpukan CBV/SRV/UAV. Lihat Tingkat Perangkat Keras untuk detailnya. Secara terpisah, ada batasan jumlah UAV di semua tabel deskriptor di semua tahapan, yang didasarkan pada tingkat pengikatan sumber daya.
10 Proses 64-bit memerlukan 40 bit ruang alamat yang tersedia per sumber daya dan per proses. Proses 32-bit mungkin dibatasi hingga 31 bit ruang alamat. Ada dua kemampuan (batas) yang tersedia di API—per proses dan per sumber daya. Ruang alamat per proses selalu lebih besar dari atau sama dengan ruang alamat per sumber daya.
Untuk detail dukungan format di tingkat fitur perangkat keras yang berbeda, lihat:
- Dukungan format DXGI untuk Perangkat Keras Tingkat Fitur Direct3D 12.1
- Dukungan format DXGI untuk Perangkat Keras Tingkat Fitur Direct3D 12.0
- Dukungan format DXGI untuk Perangkat Keras Tingkat Fitur Direct3D 11.1
- Dukungan format DXGI untuk Perangkat Keras Tingkat Fitur Direct3D 11.0
- Dukungan perangkat keras untuk Format Direct3D 10Level9
- Dukungan perangkat keras untuk Format Direct3D 10.1
- Dukungan perangkat keras untuk Direct3D 10 Formats
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk