ps_2_x Anweisungen

Dieser Abschnitt enthält Referenzinformationen für die Pixelshaderversion 2_x Anweisungen.

Es gibt mehrere Arten von Pixelshaderanweisungen, wie in der Tabelle dargestellt. Spalten auf der rechten Seite bedeuten Folgendes:

  • Anweisungsslots: Anzahl der von jeder Anweisung verwendeten Anweisungsslots.
  • Setup: Ein Pixelshader muss über eine Versionsanweisung verfügen und die erste Anweisung sein.
  • Arithmetik: Diese Anweisungen stellen die mathematischen Operationen in einem Shader bereit.
  • Textur: Diese Anweisungen werden verwendet, um Texturdaten zu laden und abzutasten und Texturkoordinaten zu ändern.
  • Ablaufsteuerung: Diese Anweisungen bieten statische und dynamische Flusssteuerung für die Ausführung von Anweisungen.
  • Neu: Diese Anweisungen sind in dieser Version neu.

Instruktionssatz

Name BESCHREIBUNG Anweisungsslots Einrichten Arithmetik Struktur Flusssteuerung Neu
abs – ps Absoluter Wert 1 x
add – ps Hinzufügen von zwei Vektoren 1 x
break – ps Brechen Sie aus einem Rep... endrep-Block 1 x x
break_comp – ps Bedingter Ausbruch eines Rep... endrep-Block mit einem Vergleich 3 x x
breakp – ps Brechen Sie aus einem Rep... endrep-Block, basierend auf einem Prädikat 3 x x
call – ps Aufrufen einer Unterroutine 2 x x
callnz bool – ps Aufrufen einer Unterroutine, wenn ein boolesches Register nicht null ist 3 x x
callnz pred – ps Aufrufen einer Unterroutine, wenn ein Prädikatregister nicht null ist 3 x x
cmp – ps Vergleich der Quelle mit 0 1 x
crs – ps Produktübergreifend 2 x
dcl_samplerType (sm2, sm3 – ps asm) Deklarieren der Texturdimension für einen Sampler 0 x
dcl - (sm2, sm3 - ps asm) Deklarieren Sie die Zuordnung zwischen Vertexshaderausgaberegistern und Pixelshadereingaberegistern. 0 x
def – ps Definieren von Konstanten 0 x
defb – ps Definieren einer booleschen Konstante 0 x x
defi – ps Definieren einer ganzzahligen Konstanten 0 x x
dp2add – ps 2D-Punktprodukt und hinzufügen 2 x
dp3 – ps 3D-Punktprodukt 1 x
dp4 – ps 4D-Punktprodukt 1 x
dsx – ps Veränderungsrate in x-Richtung 2 x x
dsy – ps Änderungsrate in y-Richtung 2 x x
else – ps Starten eines Else-Blocks 1 x x
endif – ps Beenden sie, wenn... Else-Block 1 x x
endrep – ps Ende eines Wiederholungsblocks 2 x x
exp – ps Volle Genauigkeit 2x 1 x
frc – ps Bruchkomponente 1 x
if bool – ps Starten eines If-Blocks 3 x x
if_comp – ps Starten eines if-Blocks mit einem Vergleich 3 x x
if pred – ps Starten eines If-Blocks mit Prädication 3 x x
label – ps Bezeichnung 0 x x
log – ps Protokoll mit voller Genauigkeit (x) 1 x
lrp – ps Lineare Interpolate 2 x
m3x2 – ps 3x2 multiplizieren 2 x
m3x3 – ps 3x3 multiplizieren 3 x
m3x4 – ps 3x4 multiplizieren 4 x
m4x3 – ps 4x3 multiplizieren 3 x
m4x4 – ps 4x4 multiplizieren 4 x
mad - ps Multiplizieren und Hinzufügen 1 x
max – ps Maximum 1 x
min – ps Minimum 1 x
mov – ps Move 1 x
mul - ps Multiplizieren 1 x
nop – ps Keine Operation 1 x
nrm – ps Normalize 3 x
pow – ps xy 3 x
ps Version 0 x
rcp – ps Gegenseitige 1 x
rep – ps Wiederholen 3 x x
ret – ps Ende einer Unterroutine 1 x x
rsq – ps Reziproke Quadratwurzel 1 x
setp_comp Festlegen des Prädikatregisters 1 x x
sincos - ps Sinus und Kosinus 8 x
sub – ps Subtrahieren 1 x
texkill – ps Pixelrendern beenden Siehe Hinweis 1 x
texld – ps_2_0 und höher Beispiel für eine Textur Siehe Hinweis 2 x
texldb – ps Textursampling mit Verzerrung der Detailebene von w-Component Siehe Hinweis 3 x
texldd – ps Textursampling mit vom Benutzer bereitgestellten Farbverläufen 3 x x
texldp – ps Textursampling mit projektivem Teil nach w-Komponente Siehe Hinweis 4 x

 

Hinweise:

  1. Wenn D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT festgelegt ist, slots = 2; andernfalls Slots = 1.
  2. Wenn D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT festgelegt ist und die Textur eine Cubezuordnung ist, werden Slots = 4; andernfalls Slot = 1.
  3. Wenn D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT festgelegt ist, werden Slots = 6; andernfalls Slots = 1.
  4. Wenn D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT nicht festgelegt ist, werden Slots = 1; Andernfalls:

Pixel-Shaderanweisungen