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.
- Anweisungen: vs_2_x enthält eine Liste der verfügbaren Anweisungen.
- Register: vs_2_x listet die verschiedenen Registertypen auf, die vom Vertexshader ALU verwendet werden.
- Vertexshader-Registermodifizierer werden verwendet, um die Funktionsweise einer Anweisung zu ändern.
- Vertexshader-Quellregistermodifizierer ändern die Quellregisterdaten, bevor die Anweisung ausgeführt wird.
- Quellregister Swizzling bietet zusätzliche Kontrolle darüber, welche Registerkomponenten gelesen, kopiert oder geschrieben werden.
- Die Zielregistermaskierung bestimmt, welche Komponenten des Zielregisters geschrieben 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.
Zugehörige Themen