Freigeben über


vs_2_x

Ein programmierbarer Vertexshader besteht aus einer Reihe von Anweisungen, die mit Vertexdaten arbeiten. Registriert Datenübertragungen in und aus der ALU. Ein zusätzliches Steuerelement kann angewendet werden, um die Anweisung, die Ergebnisse oder die ausgeschriebenen Daten zu ändern.

Die Vertex-Shaderversion vs_2_x erweitert den von vs_2_0 unterstützten Featuresatz. Jedes zusätzliche Feature wird durch eine entsprechende Obergrenze in der D3DCAPS9-Struktur in D3DVS20CAPS dargestellt. Um eines der erweiterten Features zu verwenden, die durch diese Feststelltaste dargestellt werden, muss die Version des Vertexshaders als vs_2_x angegeben werden.

Neue Funktionen

Die neuen Features sind wie folgt:

Dynamische Flusssteuerung

Wenn D3DVS20CAPS> 0 ist, werden die folgenden Anweisungen zur dynamischen Flusssteuerung unterstützt:

Wenn D3DVS20CAPS ebenfalls festgelegt ist, werden die folgenden zusätzlichen Anweisungen zur Flusssteuerung unterstützt:

Der Wertebereich für die Tiefe der dynamischen Flusssteuerung beträgt 0 bis 24 und entspricht der Schachtelungstiefe der Anweisungen zur dynamischen Flusssteuerung (weitere Informationen finden Sie unter Schachtelungsgrenzwerte der Flusssteuerung ). Wenn diese Obergrenze null ist, unterstützt das Gerät keine Anweisungen zur dynamischen Flusssteuerung.

Anzahl temporärer Register

D3DVS20CAPS stellt die Anzahl der temporären Registerdar, die vom Gerät unterstützt werden. Der Wertebereich für diese Obergrenze beträgt 12 bis 32.

Statische Flusssteuerung Schachtelungstiefe

D3DVS20CAPS stellt die Schachtelungstiefe von zwei Typen statischer Flusssteuerungsanweisungen dar: Schleife - vs/rep - vs und Call - vs/callnz bool - vs/if bool - vs. loop - vs/rep - vs anweisungen können bis zu D3DVS20CAPS tief geschachtelt werden. Unabhängig davon können Aufruf - vs/callnz bool - vs-Anweisungen bis zu D3DVS20CAPS tief geschachtelt werden. Wenn D3DVS20CAPS ebenfalls festgelegt ist, wird callnz pred - vs auf die Schachtelungstiefe des Aufrufs gezählt – vs/callnz bool – vs/if bool – vs (Details finden Sie unter Schachtelungsgrenzwerte für Flusssteuerung ).

Prädikation

Wenn D3DVS20CAPS festgelegt ist, unterstützt das Gerät setp_comp - vs . und Anweisungsprädication. Wenn D3DVS20CAPS ebenfalls größer als 0 ist, werden die folgenden zusätzlichen Anweisungen zur dynamischen Flusssteuerung unterstützt:

Anweisungsanzahl

Für jeden Vertexshader können bis zu 256 Anweisungen gespeichert werden. Die Anzahl der Ausgeführten Anweisungen kann viel höher sein (aufgrund der Schleifen-/Rep-Unterstützung) und ist durch D3DCAPS9 begrenzt, was mindestens 0xFFFF sein sollte.

Vertex-Shader