Angeben von Compilerzielen

Wenn Sie die Funktion D3DCompileCompile, D3DCompile2 oder D3DCompileFromFile aufrufen, müssen Sie das Shaderziel angeben – eine Gruppe von Shaderfeatures. Hier werden die Ziele für verschiedene Profile aufgelistet, die von den Funktionen D3DCompile* und vom HLSL-Compiler unterstützt werden.

Featureebenen von Direct3D 11.0 und 11.1

Hier sind die Shaderziele aufgeführt, die die Featureebenen Direct3D 11.0 und 11.1 unterstützen.

Ziel Beschreibung
cs_5_0 DirectCompute 5.0 (Compute-Shader)
ds_5_0 Domänen-Shader
gs_5_0 Geometry-Shader
hs_5_0 Hull-Shader
ps_5_0 Pixel-Shader
vs_5_0 Vertex-Shader

 

Direct3D 10.1-Featureebene

Hier sind die Shaderziele aufgeführt, die von der Direct3D 10.1-Featureebene unterstützt werden.

Ziel Beschreibung
cs_4_1 DirectCompute 4.1 (Compute-Shader
gs_4_1 Geometry-Shader
ps_4_1 Pixel-Shader
vs_4_1 Vertex-Shader

 

Direct3D 10.0-Featureebene

Hier sind die Shaderziele aufgeführt, die von der Direct3D 10.0-Featureebene unterstützt werden.

Ziel Beschreibung
cs_4_0 DirectCompute 4.0 (Compute-Shader
gs_4_0 Geometry-Shader
ps_4_0 Pixel-Shader
vs_4_0 Vertex-Shader

 

Featureebenen direct3D 9.1, 9.2 und 9.3

Hier sind die Shaderziele aufgeführt, die direct3D 9.1, 9.2 und 9.3 Featureebenen unterstützen.

Hinweis

Wenn Sie die *_4_0_level_9_x HLSL-Shaderprofile verwenden, verwenden Sie implizit die Profile des Shadermodells 2.x , um Direct3D 9-fähige Hardware zu unterstützen. Profile des Shadermodells 2.x unterstützen ein eingeschränktes Ablaufsteuerungsverhalten als die Profile des Shadermodells 4.x und höher.

 

Ziel Beschreibung
ps_4_0_level_9_1 Pixelshader für 9.1 und 9.2 (ähnliche Grenzwerte wie ps_2_0)
  • 64 arithmetische und 32 Texturanweisungen
  • 12 temporäre Register
  • 4 Ebenen abhängiger Lesevorgänge
ps_4_0_level_9_3 Pixelshader für 9.3 (ähnliche Grenzwerte wie ps_2_x² mit zusätzlichen Shaderfeatures)
  • 512 Anweisungen
  • 32 temporäre Register
  • Statische Flusssteuerung (maximale Tiefe von 4)
  • Dynamische Strömungssteuerung (max. Tiefe 24)
  • D3DPS20CAPS_ARBITRARYSWIZZLE
  • D3DPS20CAPS_GRADIENTINSTRUCTIONS
  • D3DPS20CAPS_PREDICATION
  • D3DPS20CAPS_NODEPENDENTREADLIMIT
  • D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
vs_4_0_level_9_1 Vertexshader für 9.1 und 9.2 (ähnlich wie vs_2_0)
  • 256 Anweisungen
  • 12 temporäre Register
  • Statische Flusssteuerung (maximale Tiefe von 1)
vs_4_0_level_9_3 Vertexshader für 9.3 (ähnlich wie vs_2_a² mit zusätzlichen Shaderfeatures und Instancing)
  • 256 Anweisungen
  • 32 temporäre Register
  • Statische Flusssteuerung (maximale Tiefe von 4)
  • D3DVS20CAPS_PREDICATION

 

Legacy-Direct3D 9-Shadermodell 3.0

Hier sind die Shaderziele für das Legacy-Direct3D 9-Shadermodell 3.0¹ aufgeführt.

Ziel Beschreibung
ps_3_0 Pixel-Shader 3.0
ps_3_sw Pixel-Shader 3.0 (Software)
vs_3_0 Vertexshader 3.0
vs_3_sw Vertex-Shader 3.0 (Software)

 

Legacy-Direct3D 9-Shadermodell 2.0

Hier sind die Shaderziele für das Legacy-Direct3D 9-Shadermodell 2.0³ aufgeführt.

Ziel Beschreibung
ps_2_0 Pixel-Shader 2.0
ps_2_a Pixel-Shader 2a
ps_2_b Pixel-Shader 2b
ps_2_sw Pixel-Shader 2.0-Software
vs_2_0 Vertex-Shader 2.0
vs_2_a Vertex-Shader 2a
vs_2_sw Vertex-Shader 2.0-Software

 

Legacy-Direct3D 9-Shadermodell 1.x

Hier sind die Shaderziele für das Legacy-Direct3D 9-Shadermodell 1.x⁴.

Ziel Beschreibung
tx_1_0 Textur-Shaderprofil, das die älteren D3DX9⁵-Funktionen D3DXCreateTextureShader und D3DXFillTextureTX verwenden
vs_1_1 Vertex-Shader 1.1

 

Legacyeffekte

Hier finden Sie die Wirkungsziele für Legacyeffekte.

Ziel Beschreibung
fx_2_0 Effekte (FX) für Direct3D 9 in D3DX9⁵
fx_4_0 Effekte (FX) für Direct3D 10.0 in D3DX10⁵
fx_4_1 Effekte (FX) für Direct3D 10.1 in D3DX10⁵
fx_5_0 Effekte (FX) für Direct3D 11⁵

 

Notizen

Hier sind einige Hinweise, auf die sich die vorherigen Abschnitte beziehen:

  1. Geräte der Featureebene 10.0 und 10.1 können DirectCompute optional unterstützen. Um den Support zu überprüfen, verwenden Sie ID3D11Device::CheckFeatureSupport mit D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS.
  2. Featureebene 9.3 erfordert effektiv Hardware, die die Anforderungen für das Legacy-Direct3D 9-Shadermodell 3.0 erfüllt, aber diese Featureebene verwendet keine vs_3_0- oder ps_3_0-Ziele.
  3. Verwenden Sie nur Ältere Direct3D 9-Shadermodelle mit der Direct3D 9-API. Verwenden Sie stattdessen die Profile 9.x mit der Direct3D-API 10.x und 11.x.
  4. Die aktuellen HLSL-Shaderfunktionen D3DCompile* -Funktionen unterstützen keine älteren 1.x-Pixel-Shader. Die letzte Version von HLSL zur Unterstützung dieser Ziele war D3DX9 im Oktober 2006-Release des DirectX SDK.
  5. Alle Versionen von D3DX und des DirectX SDK sind veraltet. Weitere Informationen finden Sie unter Wo ist das DirectX SDK?.

Programmieranleitung für HLSL