Menentukan Target Pengkompilasi

Anda perlu menentukan target shader — kumpulan fitur shader — untuk dikompilasi saat Anda memanggil fungsi D3DCompile, D3DCompile2, atau D3DCompileFromFile . Di sini kami mencantumkan target untuk berbagai profil yang fungsi D3DCompile* dan dukungan pengkompilasi HLSL.

Tingkat fitur Direct3D 11.0 dan 11.1

Berikut adalah target shader yang didukung tingkat fitur Direct3D 11.0 dan 11.1.

Target Deskripsi
cs_5_0 DirectCompute 5.0 (shader komputasi)
ds_5_0 Shader domain
gs_5_0 Shader geometri
hs_5_0 Shader lambung
ps_5_0 Bayangan piksel
vs_5_0 Bayangan puncak

 

Tingkat fitur Direct3D 10.1

Berikut adalah target shader yang didukung tingkat fitur Direct3D 10.1.

Target Deskripsi
cs_4_1 DirectCompute 4.1 (shader komputasi
gs_4_1 Shader geometri
ps_4_1 Bayangan piksel
vs_4_1 Bayangan puncak

 

Tingkat fitur Direct3D 10.0

Berikut adalah target shader yang didukung tingkat fitur Direct3D 10.0.

Target Deskripsi
cs_4_0 DirectCompute 4.0 (shader komputasi
gs_4_0 Shader geometri
ps_4_0 Bayangan piksel
vs_4_0 Bayangan puncak

 

Tingkat fitur Direct3D 9.1, 9.2, dan 9.3

Berikut adalah target shader yang didukung tingkat fitur Direct3D 9.1, 9.2, dan 9.3.

Catatan

Saat Anda menggunakan profil shader *_4_0_level_9_x HLSL, Anda secara implisit menggunakan profil Shader Model 2.x untuk mendukung perangkat keras berkemampuan Direct3D 9. Profil Shader Model 2.x mendukung perilaku kontrol alur yang lebih terbatas daripada profil Model Shader 4.x dan yang lebih baru.

 

Target Deskripsi
ps_4_0_level_9_1 Piksel shader untuk 9.1 dan 9.2 (batas yang sama dengan ps_2_0)
  • 64 instruksi aritmatika dan 32 tekstur
  • 12 register sementara
  • 4 tingkat bacaan dependen
ps_4_0_level_9_3 Pixel shader untuk 9.3 (batas serupa dengan ps_2_x² dengan fitur shader tambahan)
  • 512 instruksi
  • 32 register sementara
  • Kontrol aliran statis (kedalaman maksimum 4)
  • Kontrol aliran dinamis (kedalaman maksimum 24)
  • D3DPS20CAPS_ARBITRARYSWIZZLE
  • D3DPS20CAPS_GRADIENTINSTRUCTIONS
  • D3DPS20CAPS_PREDICATION
  • D3DPS20CAPS_NODEPENDENTREADLIMIT
  • D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
vs_4_0_level_9_1 Shader vertex untuk 9.1 dan 9.2 (mirip dengan vs_2_0)
  • 256 instruksi
  • 12 register sementara
  • Kontrol aliran statis (kedalaman maksimum 1)
vs_4_0_level_9_3 Vertex shader untuk 9.3 (mirip dengan vs_2_a² dengan fitur shader tambahan dan instancing)
  • 256 instruksi
  • 32 register sementara
  • Kontrol aliran statis (kedalaman maksimum 4)
  • D3DVS20CAPS_PREDICATION

 

Warisan Direct3D 9 Shader Model 3.0

Berikut adalah target shader untuk model shader Direct3D 9 warisan 3.0³.

Target Deskripsi
ps_3_0 Piksel shader 3.0
ps_3_sw Pixel shader 3.0 (perangkat lunak)
vs_3_0 Bayangan puncak 3.0
vs_3_sw Vertex shader 3.0 (perangkat lunak)

 

Warisan Direct3D 9 Shader Model 2.0

Berikut adalah target shader untuk model shader Direct3D 9 warisan 2.0³.

Target Deskripsi
ps_2_0 Pixel shader 2.0
ps_2_a Piksel shader 2a
ps_2_b Piksel shader 2b
ps_2_sw Perangkat lunak Pixel shader 2.0
vs_2_0 Shader puncak 2.0
vs_2_a Vertex shader 2a
vs_2_sw Perangkat lunak Vertex shader 2.0

 

Warisan Direct3D 9 Shader Model 1.x

Berikut adalah target shader untuk model shader Direct3D 9 warisan 1.x⁴.

Target Deskripsi
tx_1_0 Profil shader tekstur yang digunakan D3DX9⁵ fungsi lama D3DXCreateTextureShader dan D3DXFillTextureTX
vs_1_1 Shader puncak 1.1

 

Efek Warisan

Berikut adalah target efek untuk efek warisan.

Target Deskripsi
fx_2_0 Efek (FX) untuk Direct3D 9 di D3DX9⁵
fx_4_0 Efek (FX) untuk Direct3D 10.0 di D3DX10⁵
fx_4_1 Efek (FX) untuk Direct3D 10.1 di D3DX10⁵
fx_5_0 Efek (FX) untuk Direct3D 11⁵

 

Catatan

Berikut adalah beberapa catatan yang dirujuk oleh bagian sebelumnya:

  1. perangkat tingkat fitur 10.0 dan 10.1 dapat secara opsional mendukung DirectCompute. Untuk memverifikasi dukungan, gunakan ID3D11Device::CheckFeatureSupport dengan D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS.
  2. tingkat fitur 9.3 secara efektif memerlukan perangkat keras yang mematuhi persyaratan untuk model shader Direct3D 9 warisan 3.0, tetapi tingkat fitur ini tidak menggunakan target vs_3_0 atau ps_3_0.
  3. Hanya gunakan model shader Direct3D 9 warisan dengan API Direct3D 9. Sebagai gantinya, gunakan profil 9.x dengan Direct3D 10.x dan 11.x API.
  4. Fungsi HLSL shader D3DCompile* saat ini tidak mendukung shader piksel 1.x warisan. Versi terakhir HLSL untuk mendukung target ini adalah D3DX9 dalam rilis DirectX SDK Oktober 2006.
  5. Semua versi D3DX dan DirectX SDK tidak digunakan lagi. Untuk informasi selengkapnya, lihat Di mana DirectX SDK?.

Panduan Pemrograman untuk HLSL