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: